数据如图
我用 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