在通过过滤选择出不具有特定值的行时,你可能希望返回具有NULL值的行。但是,不行。因为未知具有特殊的含义,数据库不知道它们是否匹配,所以在匹配过滤或不匹配过滤时不返回它们。
解释:
1.创建一个含有null列的表
2.过滤出年龄不为10的数据
SELECT * FROM `t_knowing_doing` where age <> 10
查询结果
按照我们的设想应该过滤出2、3、4行,但是只有第4行,这是因为数据库不知道它们是否匹配,所以在匹配过滤或不匹配过滤时不返回它们。
那么如果我们需要返回null行,该怎么做?--使用使用 IS NULL操作符
select * from `t_knowing_doing` where age <> 10 or age is null
查询结果