今天写sql遇到个坑
xxx字段默认值为0,只有0和1两个值
使用关联查询时 可能会导致为null,也就是说有了0 、1、null 三种情况
想获取为0或null的数据
xxx!=1 这样写只出现了为0的数据,为null的并没有出现,这是什么情况呢?
不带条件的情况有1条调数据 0、1、null都有
带条件 !=1时 出现的却只有0的数据
修改条件=0 or is null 结果就是正确的
这是为什么呢?
因为 NULL 不是一个「值」,而是「没有值」。「没有值」不满足「值不等于1」这个条件。所以 mysql 尽量不要默认值是 NULL。
也可以使用 IFNULL(xxx,"") != 1 查询结果也是正确的