MySQL の Null セーフ等価演算子: <=> について理解する演算子
データベース クエリを使用する場合、使用される演算子を理解することが不可欠です。 MySQL では、演算子 <=> は
クエリ コンテキスト
提供されたクエリ フラグメント内:
WHERE p.name <=> NULL
< =>演算子は、p.name の値を NULL と比較するために使用されます。この比較により、根本的な疑問が生じます。演算子は実際に何をするのでしょうか?
Null-Safe 等価
通常の等価演算子 (=) とは異なり、<=> ;演算子は、null セーフな等価演算子として知られています。等価比較が実行されますが、NULL の値は別の方法で処理されます。
NULL 以外の値での動作
NULL 以外の値を比較する場合、<=> ; = 演算子と同じように動作します。 2 つの値が比較され、結果は 0 (等しくない) または 1 (等しい) になります。例:
'a' <=> 'b' = 0 (not equal) 'a' <=> 'a' = 1 (equal)
NULL 値の動作
ただし、<=> は本当に際立っているのは、NULL 値の処理です。 <=> の場合、NULL 値には特別な意味はありません。比較では、結果が NULL になる可能性がなく、常に 0 (等しくない) または 1 (等しい) が返されます。例:
'a' <=> NULL = 0 (not equal) NULL <=> NULL = 1 (equal)
有用性と応用
NULL セーフな等価演算子は、両方のオペランドに NULL が含まれる可能性がある場合に特に便利です。 NULL が含まれているかどうかに関係なく、2 つの列間の一貫した比較結果が得られます。さらに、プリペアド ステートメントとともに使用すると、スカラー値または NULL プレースホルダーを簡単に処理できます。
関連する演算子と代替
<=> のほかに、MySQL も使用できます。には、NULL との比較のために特別に設計された他の 2 つの演算子、IS NULL と IS NOT NULL が用意されています。これらの演算子は ANSI 標準の一部であり、複数のデータベースでサポートされています。
SQL:2003 標準では、述語 IS [NOT] DISTINCT FROM が導入されており、MySQL の <=> と同様に機能します。オペレーター。ただし、そのサポートは普遍的ではありません。
以上がMySQL の Null セーフ等価演算子 '' はどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。