mysql 显示空值列问题

图片说明

数据如图
我用 select * from aa where aaname is not Null;
还是会显示为空的数据

可是我改成
select * from aa WHERE aaname <>'Null'

为空的数据就不会显示了
这个一个什么原因呀,请大佬们赐教,谢谢了。

检查下你的aaname是不是null,还是你存入了字符串“Null”
所谓Null,就是这个字段为空,并且你插入数据的时候,没有制定这列的值。

可能在输入数据时,没有设置该值。导致出现Null现象

你这个字段的类型应该是varchar 类型的 你应该是存入的这个值为Null 这相当于是个字符串,不是个Null值,第一种只是排除null值,所以字符串排除不掉,第二种是排除了该字段不等于‘Null’字符串所以第二种方法不显示。

很明显你查的是两个数据类型
第一个是当前字段不为空
第二个是当前字段不为‘null’

因为你存入了值为字符串格式的"Null",而不是真的无值,有时候需要注意

aaname <>'Null' 表示aaname 不等于字符串为Null的值,而aaname <>null 是一个永假式

你的insert语句应该也错了。。
insert into aa(aaname,aatizhong) values(null,100);
select * from aa where aaname is not null;

insert into aa(aaname,aatizhong) values('Null',100);
select * from aa WHERE aaname <>'Null'

大兄弟,你数据库里面的null是字符串,不是代表空值的null

会不会人家用户名就叫NULL