【发布时间】:2017-10-02 13:19:24
【问题描述】:
我正在根据 3 个基本条件选择数据,这不是问题,问题是 如果第一个条件满足,那么它不应该像 if else 那样考虑其余两个条件,但如果第一个条件是false 那么它只进入第二个而不是第三个,就像 if elseif 一样,如果前两个条件不满足,那么它将只考虑第三个。
但在 mysql 中,当我使用 OR & AND 时,它会同时考虑所有 3 个条件。
像这样:-
SELECT * FROM `table` WHERE 'main-condition' and ('1st condition' or '2nd condition' or '3rd condition');
在此之后,我还尝试在 where 子句中使用 IF,但它也给出了与 OR 相同的结果。
代码:-
SELECT * FROM `table` WHERE 'main-condition' and (IF('1st condition',true,IF('2nd condition',true,IF('3rd condition',true,false))));
实际查询:-
SELECT 'filter','car-name' FROM `car` WHERE (((`id` = ? and `type` = 'car')and(IF((find_in_set('new car',`filter`) > 0),true,IF((find_in_set('new',`filter`) > 0, true,if((`filter`=""),true,false))))));
它给出输出
但我需要这样的输出
如果有人知道如何处理此类查询,请回答我。
谢谢
【问题讨论】:
-
请发布实际查询
-
ok,给出真正的查询
-
你可以使用 CASE WHEN THEN 语法