MySQL にて NULL を Where 句で評価したい場合

NULL は不定であり、特定の値が入っているわけではないので、MySQL の SQL文にて、hoge = NULL は評価されません。

仮に、hoge 列に NULL が入っていたとしても、NULL = NULL は true にはなりません。NULL は何と比較しても、unknown となります。

https://qiita.com/kiiimiis/items/119cdbd51c588c4b1f62

NULL を、特定の値のように評価するためには、NULL 安全等価演算子(<=>) を用います。

NULL が含まれる列と、他の列との比較の際などに、利用機会がありました。

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

https://gihyo.jp/dev/serial/01/mysql-road-construction-news/0144

カテゴリー: