sql语句not and or执行顺序(实例解析)

发布时间:2020-07-22编辑:脚本学堂
本文介绍下,sql语句中有关not and or的执行顺序,通过例子为大家做详细的分析,有需要的朋友可以参考下。

本节内容:
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里建议多用()来改变执行顺序,以获取需要的结果。