为什么我们不能使用比较运算符(=)来获取表中带 NULL 的行?


我们无法使用 =(比较运算符),因为我们知道 NULL 不是一个值。如果我们要获取表中带 NULL 的行,那么需要在 MySQL 查询中使用 IS NULL 运算符。以下使用“employee”表数据的示例会展示它 −

示例

mysql> Select * from Employee WHERE Salary IS NULL;

+----+-------+--------+
| ID | Name  | Salary |
+----+-------+--------+
| 7  | Aryan | NULL   |
| 8  | Vinay | NULL   |
+----+-------+--------+

2 rows in set (0.00 sec)

上面的查询使用 IS NULL 运算符,会生成输出,其中 salary 列带有 NULL。

mysql> Select * from employee where salary = NULL;
Empty set (0.00 sec)

上面的查询使用 =(比较运算符),因此会生成空集,因为 NULL 不是一个值。

更新于: 06-Feb-2020

52 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告