SQL中 and or优先级问题
2012-03-10 08:02
197 查看
SQL中 and or优先级问题
刚刚在项目中遇到这样一个问题,SQL语句如下: select * from LOAN_BACK_LIBRARY where LIBRARY_ID=1 or LIB_ID=1 and STATUS=3 我想要的结果的条件是:1. LIBRARY_ID=1 或者 LIB_ID=1 2.STATUS=3 但是结果并非如此,出现了STATUS!=3的结果,但是却匹配了 LIBRARY_ID=1 or LIB_ID=1 为什么呢 原来这个SQL的执行是这样的: select * from LOAN_BACK_LIBRARY where LIBRARY_ID=1 or LIB_ID=1 and STATUS=3 修改为: select * from LOAN_BACK_LIBRARY where STATUS=3 and LIBRARY_ID=1 or LIB_ID=1 依然不正确 呵呵,发现问题了: where 后面如果有and,or的条件,则or自动会把左右的查询条件分开,即先执行and,再执行or。原因就是:and的执行优先级最高! 关系型运算符优先级高到低为:not and or 问题的解决办法是: 用()来改变执行顺序!!!! 上面我所需要的SQL语句是这样的 select * from LOAN_BACK_LIBRARY where STATUS=3 and (LIBRARY_ID=1 or LIB_ID=1 ) 这样就是完美的答案了!!!! |
相关文章推荐
- SQL中 and or优先级问题
- SQL中 and or优先级问题
- SQL中 and or优先级问题
- SQL中 and or优先级问题(转)
- SQL中 and or优先级问题(转)
- sql中and or优先级
- 数据库sql中and和or优先级的问题
- SQL中逻辑运算 and or优先级
- SQL语句中AND OR运算符优先级
- SQL中not and or优先级问题
- Sql order by 数据排序 优先级问题
- 在T-SQL中注意and和or的优先级问题
- 请教:SQL语句中OR和AND的优先级问题
- [PL/SQL] 请教大家一个问题,存储过程中需要几个commit?
- 数据库 'SqlPersistenceService' 的版本为 655,无法打开。此服务器支持 611 版及更低版问题
- 丁奇:关于 AliSQL 开源大家关心的问题
- 用优先级随机概率解决'今天吃神马问题
- SQL各种写法的效率问题
- sql访问问题2
- java中判断运算符 == 和三目运算符的优先级问题