where子句中的条件条件

时间:2013-03-16 09:38:29

标签: mysql sql

我有一个像

这样的查询
 select * from table1 where id >20 and marks1 <40 and marks2 <30;

但我需要根据另一个条件删除最后一个条件,例如

如果marks3 >40 then use marks2 <30否则会删除此条件。

是否可能。

提前致谢....

2 个答案:

答案 0 :(得分:2)

很简单。您只需要使用'或'子句添加条件。

select * from table1 where id >20 and marks1 < 40 and (marks3 <= 40 or (marks3 > 40 and marks2 <30));

如果 marks3&lt; = 40 ,则外括号内的表达式将被评估为 True 。其他条件是什么并不重要 如果 marks3&gt; 40 ,然后 marks2 必须&lt; 30 表示内括号内的表达式被评估为 True ,这使得完整的外括号被评估为 True

答案 1 :(得分:1)

试试这个。

select * 
from   table1 
where  id > 20 and 
       marks1 < 40 and 
       (
           (marks3 >40 and marks2 <30) or 
           mark3 <= 40
       )