欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

sql中or和and混合使用

程序员文章站 2022-03-08 17:39:28
...

前言

今天,线上环境出了个问题,导致被叼了一顿,特此纪念一下。

导致bug的代码片段:

sql中or和and混合使用

 原因是红色框框里用了or没有加(),导致查询出来的数据对不上,所有条件加起来的数量不等于总数。

原因可见:此篇博客

实践一下:

sql中or和and混合使用

sql:

SELECT * from t_student where sex =1 and class ='1' OR class is null and age <14;

sql中or和and混合使用

等价于:

SELECT * from t_student where sex =1 and class ='1' UNION SELECT * from t_student where class is null and age <14;

正确写法:

SELECT * from t_student where sex =1 and (class ='1' OR class is null) and age <14;

sql中or和and混合使用