mysql中,经常会遇到and 和or连用的情况,这时候就需要知道and和or的优先级 and优先级高于or,sql中先执行and
拿单表user举例:
user中所有的数据:
select * from user;
执行如下Sql语句:
select * from user t where t.classNumber=1 and age =25 or birthplace='北京';
由于是and优先于or,所以实际上查询的意思应该是“1班中25岁的人以及所有北京的人”执行结果如下:
如果想让or优先,需要加括号,如下:
SELECT * FROM USER t WHERE t.classNumber = 1 AND (age = 25 OR birthplace = '北京');
执行结果如下:
意思是“1班中的人,其中是25岁或者是北京的"
两者查出来的截然不同!所以使用的时候一定要注意!