MySQL 中的「安全等于」运算符是什么

皮康龙发布

今天复习 MySQL 的时候看到了 <=> 运算符。

众所周知,= 是等于运算符,<> 是不等于运算符,那么 <=> 是什么呢?

<=> 表示的是「安全等于」,它可以用在比较 NULL 值的时候。

当我们使用 = 来比较 NULL 值的时候会出现返回值为 NULL 的情况:

mysql> SELECT NULL = NULL, NULL = 1;
+-------------+----------+
| NULL = NULL | NULL = 1 |
+-------------+----------+
|        NULL |     NULL |
+-------------+----------+
1 row in set (0.00 sec)

而使用安全等于则可以解决这一问题:

mysql> SELECT NULL <=> NULL, NULL <=> 1;
+---------------+------------+
| NULL <=> NULL | NULL <=> 1 |
+---------------+------------+
|             1 |          0 |
+---------------+------------+
1 row in set (0.00 sec)

事实上,这个运算符使用的不多,当需要比较 NULL 值的时候,还可以通过 IS NULLIS NOT NULL 来实现:

mysql> SELECT NULL IS NULL, 1 IS NULL, NULL IS NOT NULL, 1 IS NOT NULL;
+--------------+-----------+------------------+---------------+
| NULL IS NULL | 1 IS NULL | NULL IS NOT NULL | 1 IS NOT NULL |
+--------------+-----------+------------------+---------------+
|            1 |         0 |                0 |             1 |
+--------------+-----------+------------------+---------------+
1 row in set (0.00 sec)

分类: 未分类

0 条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注