特殊的未知值
NULL不是0,也不是’'空字符串,而是一个未知的状态——可能有值,可能无值,可能存在,可能不存在,可能是任何值,可能不是任何值。总之一切皆有可能。
NULL 的值不确定,因此 NULL 与 NULL 是不相同的。在逻辑判断中,NULL=NULL 返回的判断结果不是 TRUE ,而是 NULL。因为,未知和未知是无法进行比较的。假设你有两场相亲,在见面之前,你对这两个相亲对象的具体信息一无所知。因此,这俩人对你来说,都是“未知的”,都可以标记为 NULL。但是,你能说这俩人是同一个人吗?不能吧。但是,你能说这俩一定不是同一个人吗?也不一定。
NULL运算
因为NULL是一个未知值,所以它不属于任何一种数据类型,它和任何类型的数据进行运算,结果都为NULL。
select null+0;
+--------+
| null