この記事では、MySQL で "<=>" 演算子を使用する方法を紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。
質問:
以前の開発者のコードを見ていたら、
?1WHERE p.name が見つかりました。 <=>NULL
このクエリ ステートメントの <=> 記号は何を意味しますか? =記号と同じですか?それとも文法上の間違いでしょうか?ただし、エラーや例外は表示されません。 mysql の <> = != などの記号はすでに知っています。
ベストアンサー:
= 記号と同じ点
通常の = 演算子と同様に、2 つの値が比較され、結果がは 0 (等しくない) または 1 (等しい) です。つまり、「A'<=>B」は 0 を取得し、「a'<=>a」は 1 を取得します。
2.
と = 演算子の違いは、NULL の値には意味がないことです。したがって、= 演算子は NULL を有効な結果として扱うことができません。したがって、<=>,
'a' <=> NULL は 0 NULL を取得します<=> NULL は 1 を取得します。 = 演算子とは対照的に、= 演算子の規則は 'a'=NULL であり、結果は NULL になります。NULL = NULL であっても、結果は NULL になります。ちなみに、NULL との比較は基本的に無意味であるため、MySQL 上のほとんどすべての演算子と関数はこのように動作します。
使用
2 つのオペランドに NULL が含まれる可能性がある場合は、一貫したステートメントが必要です。
?1...WHERE col_a <=> ? ...
ここのプレースホルダーは定数または NULL にすることができます。<=> 演算を使用する場合は、次のようにします。クエリステートメントを変更する必要はありません。
関連演算子
<=> に加えて、特定の値を NULL と比較するために使用される他の 2 つの演算子、つまり IS NULL と IS NOT があります。ヌル。これらは ANSI 標準の一部であるため、他のデータベースでも使用できます。 <=> は mysql でのみ使用できます。
<=> は mysql の方言と考えることができます。
?12'a' は NULL ==>'a' <=>NULL'a' は NULL ではありません ==>NOT('a' <=>NULL)
これに従って、このクエリ ステートメント セグメントを移植性を高めるために変更できます:
?1WHERE p.name IS NULL
関連する推奨事項: "mysql チュートリアル 》
以上がMySQL で「<=>」演算子を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。