MySQL 语句中有and、or注意项

MySQL中,AND的执行优先级高于OR。也就是说,在没有小括号()的干预下,总是先执行AND语句,再执行OR语句。
例:

select * from table where  条件1 OR条件2 AND 条件3

等价于:select * from table where 条件1 OR (条件2 AND 条件3)

 

select * from table where  条件1 AND  条件2 OR 条件3 AND 条件4
等价于: select * from table where   (  条件1 AND  条件2  )  OR   (  条件3 AND 条件4  ) 

 

所以在需要 or 查询条件时最好把 or 条件用圆括号括起来

例如:

查询 id=1或id=2,并 且age = 20的语句为:

SELECT * from student WHERE (id = 1 or id = 2 ) AND age = 20;

 

posted @ 2021-04-28 10:42  HM_mei  阅读(525)  评论(0)    收藏  举报