捉えどころのないもの <=> MySQL の演算子
MySQL には独特の演算子 <=> があり、その謎めいた目的に慣れていない開発者を混乱させる可能性があります。従来の等号 (=) に似ていますが、NULL 値の処理において特別な重要性を持っています。
Null セーフ比較
対応するものとは異なり、< => NULL 値の存在に関係なく、一貫した比較結果が保証されます。 NULL を生成する代わりに、NULL を特定の値として解釈し、NULL を含む可能性のある列間の信頼性の高い比較を可能にします。コードの最適化に特に役立ちます。たとえば、次のプリペアド ステートメントを考えます。
このステートメントは、クエリの変更を必要とせずに、プレースホルダーをスカラー値または NULL として処理します。
代替演算子
... WHERE col_a <=> ? ...
MySQL は NULL に合わせた追加の演算子を提供します比較:
IS NULL
: 値が明示的に NULL であるかどうかを判断します。プラットフォーム間の移植性を高めるために、クエリを次のように変換できます。
ユニバーサルMySQL の <=> をサポート
プラットフォーム固有のままですが、SQL:2003 標準では同様の述語が導入されました:WHERE p.name IS NULL
この述語は <=> と同様に動作しますが、サポート範囲は広くなります。普遍的な互換性を実現するために、次の複雑な式も使用できます:
以上がMySQL の「演算子は比較で NULL 値をどのように処理しますか?」の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。