在Mysql中查询中经常用到in 和not 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)
具体原因尚未可知,欢迎留言讨论