踩坑记录Mysql查询使用not in会出现意外返回空的情况

Posted 小飞快飞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了踩坑记录Mysql查询使用not in会出现意外返回空的情况相关的知识,希望对你有一定的参考价值。

mysql中查询中经常用到innot in,例如查询用户工作不再工作表中的用户:

select * user where job_no not in (select job_no from job_info)

那么就会有一个小坑小概率的出现,那就是如果job_info 表中有记录的job_no 字段是空值的话(一般不存在,就怕二般),上句Sql查询的结果就会是空记录,出现这种情况还有以下Sql:

select * user where job_no not in (null)

如果要避免此问题,就得加上不为空的判断就好了,如下:

select * user where job_no not in (select job_no from job_info where job_no is not null)

具体原因尚未可知,欢迎留言讨论

以上是关于踩坑记录Mysql查询使用not in会出现意外返回空的情况的主要内容,如果未能解决你的问题,请参考以下文章