sql语句中使用innot in 查询时,注意条件范围中的null值处理事项

Posted Java半路人生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql语句中使用innot in 查询时,注意条件范围中的null值处理事项相关的知识,希望对你有一定的参考价值。

emp表中的数据

 

 

1. 使用in的时候,忽略为null的,不会查询出comm为null的数据

select * from emp e where e.comm in (300, 500, null);

2. 使用not in的时候,如果 not in后面的选项中没有null,只会查询从comm列不为空的列中过滤,会过滤掉comm为null的数据

select * from emp e where e.comm not in (300, 500);

3. 使用not in 的时候,如果not in后面的选项中有null,不会查询出来任何数据。sql语句本身直接返回false,所以使用not in的时候,要保证in中的条件不会出现null的情况,不然可能会出现意想不到的情况。

select * from emp e where e.comm not in (300, 500, null);

 

以上是关于sql语句中使用innot in 查询时,注意条件范围中的null值处理事项的主要内容,如果未能解决你的问题,请参考以下文章

existsinnot innot exists

sql语句中条件查询里in、like、及=三个的效率怎么样?

SQL开发实战技巧系列:从执行计划看NOT INNOT EXISTS 和 LEFT JOIN效率,记住内外关联条件不要乱放

mybatis sql in 查询(mybatis sql语句传入参数是list)mybatis中使用in查询时in怎么接收值

sql怎么用查询结果作为条件进行查询

sql语句中嵌套时候用in 和=有啥区别