MySQL NULL值

时间:2023-03-08 16:08:58
MySQL NULL值
我们已经看到SQL SELECT命令和WHERE子句一起使用,来从MySQL表中提取数据,
但是,当我们试图给出一个条件,比较字段或列值设置为NULL,它确不能正常工作。

为了处理这种情况,MySQL提供了三大运算符

IS NULL: 如果列的值为NULL,运算结果返回 true

IS NOT NULL: 如果列的值不为NULL,运算结果返回 true

<=>: 运算符比较值,(不同于=运算符)即使两个空值它返回 true

涉及NULL的条件是特殊的。不能使用= NULL或!= NULL来匹配查找列的NULL值。
这样的比较总是失败,因为它是不可能告诉它们是否是true。 甚至 NULL = NULL 也是失败的。

要查找列的值是或不是NULL,使用IS NULL或IS NOT NULL。

要查找记录中,其中 tutorial_count 列的值是或不是NULL,查询应该这样写:

mysql> SELECT * FROM tcount_tbl
    -> WHERE tutorial_count IS NULL;
+-----------------+----------------+
| tutorial_author | tutorial_count |
+-----------------+----------------+
| mahnaz          |           NULL |
| Jen             |           NULL |
+-----------------+----------------+
 rows in set (0.00 sec)
mysql> SELECT * from tcount_tbl
    -> WHERE tutorial_count IS NOT NULL;
+-----------------+----------------+
| tutorial_author | tutorial_count |
+-----------------+----------------+
 |
 |
+-----------------+----------------+
 rows in set (0.00 sec)