今天用一个简单的sql查东西,看到了如图的空值,果断用了一个 select * from table where xxx is null
想把这些空值的给查出来,试了很多表都不行,看了建表语句,这个xxx字段默认值是null,以为是填充的默认值,
后来还用 xxx = ‘’ 判断,都没有用,开始上网各种百度,纠结了20分钟,后来问同事,同事说怀疑这个字段是不是null,
用了 select length(xxx) from table ,长度竟然为6,果然这个 (NULL) 是一个字符串,根本就不是正常的null值,唉,
查了数据来源脚本才知道,是其他同事写的碰到空值时填充字符串 (NULL),这个字符串很坑人啊,果断不能用啊,
虽然这个点很小,但是以后再碰到,我就不用浪费那么久去寻找原因了,还是很有收获的。
另外,通过刚才的百度,更加了解NULL的含义了,它什么都不是,只是一个NULL,不等于任何数据或符号,判断是否为
NULL时,只能用IS NULL 或 IS NOT NULL;
select null = null 的结果还是 NULL