当前位置: 数据库>sqlserver
sql语句not and or执行顺序(实例解析)
来源: 互联网 发布时间:2014-08-29
本文导语: 本节内容: sql语句not and or的执行顺序。 通过实例学习sql语句逻辑运算符优先级。 首先,sql语句中逻辑运算符优先级跟c一样,not > and > or (c里面是 ! > && > || ) 举例: 代码示例: select * from table_name where a = 1 and b = 2 or c = 3; ...
本节内容:
sql语句not and or的执行顺序。
通过实例学习sql语句逻辑运算符优先级。
首先,sql语句中逻辑运算符优先级跟c一样,not > and > or (c里面是 ! > && > || )
举例:
代码示例:
select * from table_name where a = 1 and b = 2 or c = 3;
本来想实现:
在table_name表里选择a = 1 并且 (b = 2 或者 c = 3)的结果集,但是结果肯定不和我想的一样,结果集是 (a = 1 并且 b =2 ) 的结果集或者 c = 3的结果集
因为sql的执行顺序为:
代码示例:
select * from table_name where (a = 1 and b = 2) or c = 3;
想得到预期的效果:
代码示例:
select * from table_name where a = 1 and (b = 2 or c = 3);
注意:
在写c或者php代码时,为了代码简洁竟然通过&& || !各种组合达到想要的结果,但是写sql语句时还是小心一些为好,毕竟sql注入也是基于此原理。
sql里建议多用()来改变执行顺序,以获取需要的结果。