天天看点

Mysql查询时当where条件中有and和or时候需要注意优先级关系

     在mysql查询时,经常会遇到where条件中and与or同时出现的情况,但是正常拼写sql往往不能打到预期的效果,需要把and 的条件使用括号括起来或者or的条件括起来才会达到预期的效果,这是因为where条件中 and优先与or ,所以加上括号就可以改变优先级关系。

例如:  select * from table from height = 170  and age >10 or age < 5 

实际的执行效果是  所有身高等于170 并且年龄大于10 的同学 或者 年龄小于5的同学

如果加上括号:select * from table from height = 170  and (age >10 or age < 5 )

则这条语句执行的结果 身高等于170 的同学 并且 年龄 大于10 或者小于5