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值处理事项的主要内容,如果未能解决你的问题,请参考以下文章
sql语句中条件查询里in、like、及=三个的效率怎么样?
SQL开发实战技巧系列:从执行计划看NOT INNOT EXISTS 和 LEFT JOIN效率,记住内外关联条件不要乱放
mybatis sql in 查询(mybatis sql语句传入参数是list)mybatis中使用in查询时in怎么接收值