SQL语句中AND OR运算符优先级
2016-07-07 17:00
302 查看
在SQL语句中,OR的优先级比AND的优先级要低,比如:
本想着找到一个id是1,2,3中的一个而且喜欢钓鱼或者跑步的人,但是上面的语句实际上是这样执行的:
也就是说,SQL解释器把where子句以or运算符为界限分开了,所以搜索到的实际上是一个喜欢跑步的人或者id是1,2,3中的一个并且喜欢钓鱼的人。切记。
select * from user where id in (1,2,3) and hobbies like '%Fishing%' or hobbies like '%Running%';
本想着找到一个id是1,2,3中的一个而且喜欢钓鱼或者跑步的人,但是上面的语句实际上是这样执行的:
select * from user where (id in (1,2,3) and hobbies like '%Fishing%') or (hobbies like '%Running%');
也就是说,SQL解释器把where子句以or运算符为界限分开了,所以搜索到的实际上是一个喜欢跑步的人或者id是1,2,3中的一个并且喜欢钓鱼的人。切记。
相关文章推荐
- SQL中的三值逻辑
- SQL Server 作业批量停止
- 结束SQL阻塞的进程
- 动态生成SQL Server视图作业
- SQL Server 语句操纵数据库
- SQL(结构化查询语句)
- oracle sql日期比较
- linux快速部署mysql服务器
- sql 存储过程分页
- 在WINXP系统上安装SQL Server企业版的方法
- 通过批处理调用SQL的方法(osql)
- SQL Server 存储过程的分页
- ASP程序与SQL存储过程结合使用详解
- SQL SERVER编写存储过程小工具
- 防御SQL注入攻击时需要注意的一个问题
- Microsoft Sql server2005的安装步骤图文详解及常见问题解决方案
- PostgreSQL教程(十九):SQL语言函数
- SQL Server复制需要有实际的服务器名称才能连接到服务器