MySQL使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作。
为了处理这种情况,MySQL提供了三大运算符:
(1)IS NULL:当列的值是NULL,此运算符返回true。
(2)IS NOT NULL:当列的值不为NULL, 运算符返回true。
(3)<=>:比较操作符(不同于=运算符),当比较的的两个值为NULL时返回true。
关于 NULL 的条件比较运算是比较特殊的。你不能使用 = NULL 或 != NULL 在列中查找 NULL 值 。
SELECT * FROM ta_tbl WHERE a_count = NULL;
SELECT * FROM ta_tbl WHERE a_count != NULL;
上述两条语句的中= 和 != 运算符是不起作用的。
在MySQL中,NULL值与任何其它值的比较(即使是NULL)永远返回false,即 NULL = NULL 返回false 。
MySQL中处理NULL使用IS NULL和IS NOT NULL运算符。
正确的比较a_count是不是NULL值的方法为:
SELECT * FROM ta_tbl WHERE a_count IS NULL;
SELECT * FROMta_tbl WHEREa_count IS NOT NULL;