Я ищу способ выполнения проверки операторов MySQL, если данный параметр существует. Насколько я помню, я могу сделать следующее в Oracle для достижения этого:Проверка синтаксиса MySQL, если параметр равен нулю
select s.* from Site s
where s.study = :study
and (:enabled is null or s.enabled = :enabled)
это что-то подобное в MySQL тоже? Тот же код выполняется без ошибок, но никогда не возвращает никаких записей.
Моя цель состоит в том, чтобы избежать использования нескольких lfs и elses в моем java-коде. Он должен работать так, что запрос выглядит, что, когда включен параметр является недействительным:
select s.* from Site s
where s.study = :study
и т.п., что если параметр не является нулевым:
select s.* from Site s
where s.study = :study
and s.enabled = :enabled
, и я хочу сделать это с одним запрос
'AND (s.enabled IS NULL ИЛИ s.enabled =: enabled)' –
': enabled is null' довольно бессмысленно - вы можете тривиально проверить это в клиентском коде без использования db для этого, поскольку значение ': enabled' является одним из вас. вы хотите проверить, является ли поле в нулевом значении, что означает, что вам нужно проверить 's.enabled'. –
Это не так бессмысленно, если вы предполагаете, что у вас всего один запрос для всех возможных случаев. Нет, если он и elses человек. Это очень полезно. Цель состоит в том, чтобы проверить параметр, а не колонку, и отключить целую строку в этом запросе, если параметр действительно равен нулю. – smoczyna