结论
and
的优先级 高于
or
。
验证
1、准备一张数据表
2、or 查询
SELECT * FROM
user
u where u.USER_NAME like ‘%xiang%’ or u.age like ‘%3%’ ;
查询数据表,满足条件USER_NAME
带有xiangjiao
或者age
带有3
的数据
3、or 与 and 同时使用
SELECT * FROM
user
u where u.USER_NAME like ‘%xiang%’ or u.age like ‘%3%’ and CREATED_BY = ‘xj’
上述的sql,等同于:
SELECT * FROM `user` u where u.USER_NAME like '%xiang%' or (u.age like '%3%' and CREATED_BY = 'xj');
SELECT * FROM `user` u where CREATED_BY = 'xj' and u.age like '%3%' or u.USER_NAME like '%xiang%';
这里的优先级,说的是执行顺序
问题。and
的优先级高于 or
,将导致 (u.age like '%3%' and CREATED_BY = 'xj')
部分的条件优先执行
。