MySQL – AND/OR执行顺序

MySql中,会按以下权重顺序执行NOT > AND > OR,且where后面如果有or,or会自动把左右分组
例如:
SELECT * FROM student WHERE id=10001 ANDname='小A' OR 1=1 ANDage=18;
相当于
SELECT * FROM student WHERE (id=10001 ANDname='小A') OR (1=1 ANDage=18);

例如:
select * from book where bid in (1,3,4) or bname like 'Java%' and price = 30
相当于
因为Mysql先处理AND操作符,所以先判断bname like ‘Java%’ and price = 30,没有符合该条件的记录,再和bid in (1,3,4)做或运算.

发表评论