Я хотел бы, чтобы мой оператор sql оценивал все в условии WHERE
и не останавливался, если условие не выполняется. Я вижу, что CASE WHEN
останавливается, когда первый соответствующий оператор возвращает значение true.
Таким образом, как показано ниже, вычисляется только часть THEN
, если выполняется наше условие WHEN
, и не останавливается, если выполняется условие.
Есть ли способ сделать это?
SELECT m.*
FROM users AS u
JOIN microposts m ON u.id=m.user_id
WHERE CASE WHEN #{my_string} != '' THEN u.gender = #{my_string}
WHEN #{my_string2} != '' THEN u.hometown = #{my_string2}
WHEN #{my_string3} != '' THEN m.content = #{my_string3}
END