mysql : 使用不等于过滤null的问题

在写SQL 条件语句为 customer_type != #excludeType#,用excludeType去除某个指定类型,发现列值为null的行查不出来

例:表A

用 select * from A where B1 != 1查询时得到的结果为:

第三列 B1为空的也是会筛选掉的。

因为 NULL 不是一个「值」,而是「没有值」。「没有值」不满足「值不等于1」这个条件。所以 mysql 尽量不要默认值是 NULL。

要查出第三列只需将SQL 改为 :select * from A where B1 != 1 or B1 is null 即可。

网上还有更简洁写法:select * from A where IFNULL(B1,'') != 1

原文地址:https://www.cnblogs.com/CodeSpike/p/13523333.html