读书人

一个 quot;NOT INquot; 引发的异常

发布时间: 2012-07-18 12:05:40 作者: rapoo

一个 "NOT IN" 引发的错误

???? 前几天用到 “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了!

?

读书人网 >其他数据库

热点推荐