如果数据库某条记录中a字段存在NULL值,使用 where a not in ('why' , 'ym'); 无法查询出该条记录,因为NULL值比较特殊。
也就是说,如果一张表中的总记录数为3条,使用where a not in ('why' , 'ym') 和 where a in ('why' , 'ym') 查询的记录数相加之和并不一定等于3。
如果我们not in后面的值是使用子查询从其他表查出来的,但是查询的值存在NULL,即 where a not in (NULL , 'why' , 'ym');
那么该条查询语句查询不出来任何记录,因为not in 后面存在NULL导致。。