十次

[MySQL]当有的字段数据为null时,使用!=无法查出为null的数据

[MySQL]当有的字段数据为null时,使用!=无法查出为null的数据
2020-11-25 · 1 min read
MySQL

问题

MySQL当有的字段数据为null时,对那个字段使用!=无法查出为null的数据

重现

用户表User,表数据和结构为

可以看出User表的nickname字段有的数据是null、有的不是。

当以 nickname为where条件执行

select * from user
where nickname != '插葱的猪';

得到的结果为

很奇怪,没有nickname为null的数据

解决方案

在后面添加or user.nickname is null或者or isnull(user.nickname)就好了。

select * from user
where nickname != '插葱的猪' or isnull(user.nickname);
# 或者
select * from user
where nickname != '插葱的猪' or user.nickname is null ;

结果

不知道mysql为什么要这么做。