日期:2014-05-16 浏览次数:20478 次
???? 前几天用到 “NOT IN” 用做条件过滤时,发现少了部分数据,后来仔细查看数据时发现将查询字段为 NULL 状态的记录忽略掉了。记录下来,以备日后总结。
?
???? 实例如下:
1. 数据库users表中存在如下记录:
?
2. 查询 email 不为 “aa@test.com” 的记录:
SELECT * FROM users WHERE email NOT IN ('aa@test.com');
?发现查询结果如下:
3. 以上查询方式是错误的,应该照顾到email字段为NULL的状态情况。
SELECT * FROM users WHERE (email IS NULL OR email NOT IN ('aa@test.com'));
?查询结果如下:
?ok了!
?