MySQL IS NULL

本文介绍了 MySQL 中如何使用 IS NULL 运算符测试一个值是否 NULL

在 MySQL 中,NULL 是一个特殊的值,它代表什么都没有。它不是空,也不是 0

IS NULL 运算符用来测试一个值是不是 NULL,如果是 NULL 返回 1,否则返回 0

MySQL IS NULL 语法

IS NULL 是一个单目比较运算符,只需要一个操作数。IS NULL 运算符的语法是:

expression IS NULL
expression IS NOT NULL

说明:

  • expression 可以是一个字段名、一个值或者一个表达式。
  • IS NOT NULLIS NULL 的否定运算。

IS NULLIS NOT NULL 可以用在 SELECT 子句或者 WHERE 子句中。

MySQL IS NULL 运算规则

IS NULL 运算符左侧的操作数是 NULL 时,IS NULL 运算符返回 1,否则返回 0

SELECT
    NULL IS NULL,
    0 IS NULL,
    1 IS NULL,
    (NULL IN (NULL)) IS NULL,
    (1+1) IS NULL;
+--------------+-----------+-----------+--------------------------+---------------+
| NULL IS NULL | 0 IS NULL | 1 IS NULL | (NULL IN (NULL)) IS NULL | (1+1) IS NULL |
+--------------+-----------+-----------+--------------------------+---------------+
|            1 |         0 |         0 |                        1 |             0 |
+--------------+-----------+-----------+--------------------------+---------------+

IS NOT NULLIS NULL 的否定运算。如果 IS NOT NULL 左侧的操作数不是 NULL 时,IS NOT NULL 运算符返回 1,否则返回 0

SELECT
    NULL IS NOT NULL,
    0 IS NOT NULL,
    1 IS NOT NULL;
+------------------+---------------+---------------+
| NULL IS NOT NULL | 0 IS NOT NULL | 1 IS NOT NULL |
+------------------+---------------+---------------+
|                0 |             1 |             1 |
+------------------+---------------+---------------+

MySQL IS NULL 实例

在以下实例中,我们使用 Sakila 示例数据库中的 staff作为演示。

以下 SQL 语句使用 IS NULL 查询 staff 表中的那些没有设置密码的职员。

SELECT
    first_name, last_name, password
FROM
    staff
WHERE
    password IS NULL;
+------------+-----------+----------+
| first_name | last_name | password |
+------------+-----------+----------+
| Jon        | Stephens  | NULL     |
+------------+-----------+----------+

同样的,如果要查询 staff 表中的那些设置了密码的职员,请使用下面的 SQL 语句。

SELECT
    first_name, last_name, password
FROM
    staff
WHERE
    password IS NOT NULL;
+------------+-----------+------------------------------------------+
| first_name | last_name | password                                 |
+------------+-----------+------------------------------------------+
| Mike       | Hillyer   | 8cb2237d0679ca88db6464eac60da96345513964 |
+------------+-----------+------------------------------------------+

结论

在本文中,我们学习了 MySQL 中 IS NULLIS NOT NULL 比较运算符的语法和用法。本文要点如下:

  • IS NULLIS NOT NULL 是单目比较运算符。
  • 使用 IS NULL 运算符检查一个值是否是 NULL
  • IS NOT NULL 运算符是 IS NULL 的否定操作。
  • NULL IS NULL 的结果是 1