- MySQL
-
2022-10-11
今回はMySQLでのNULL安全等価演算子についてご紹介します。
NULL安全等価演算子とは<=>のことで、見た目が宇宙船に似ていることからSpaceship Operator(宇宙船演算子)とも言われます。
※他言語でもあるんですが、返り値が違ったりするのでご注意ください。
まず、値の比較について見ていきます。
1と1を等価演算子で比較します。
MySQL> SELECT 1 = 1; +-------+ | 1 = 1 | +-------+ | 1 | +-------+
結果は真の1となりました。
次は1と0を比較してみましょう。
MySQL> SELECT 1 = 0; +-------+ | 1 = 0 | +-------+ | 0 | +-------+
結果は偽の0となりました。
今後は1とNULLを比較してみます。
MySQL> SELECT 1 = NULL; +----------+ | 1 = NULL | +----------+ | NULL | +----------+
結果は偽の0となるかと思いきや、NULLとなりました。
NULL同士を比較するとどうでしょうか。
MySQL> SELECT NULL = NULL; +-------------+ | NULL = NULL | +-------------+ | NULL | +-------------+
結果はNULLとなりました。
1とNULLの場合は0、NULL同士の場合は1になって欲しいですよね。
そこで登場するのが、今回のNULL安全等価演算子(宇宙船演算子)です。
それを使うと次のようになります。
1とNULLの場合
SELECT 1 <=> NULL; +------------+ | 1 <=> NULL | +------------+ | 0 | +------------+
NULL同士の場合
SELECT NULL <=> NULL; +---------------+ | NULL <=> NULL | +---------------+ | 1 | +---------------+
ということで、まさに欲しい結果が返ってきてくれます。
続いてサンプルデータを用いて、実際の事例をご紹介します。
続きを読む…»
3,013 views




