NULL 値を含む可能性のあるテーブルの列を扱う場合、MySQL が NULL を含む比較をどのように処理するかを理解することが重要です。
この問題は不等比較 (CODE!='C') を使用するときに発生しますが、NULL 値は考慮されません。この場合、MySQL は NULL 値を含むレコードを結果セットからサイレントに除外し、これらのレコードが存在しないように見せます。
結果セットに NULL 値を含むレコードを含めるには、NULL を考慮して比較を明示的に拡張する必要があります。正しい方法は、次の構文を使用することです:
<code class="language-sql">SELECT * FROM TABLE WHERE CODE IS NULL OR CODE!='C'</code>
IS NULL 演算子を使用することにより、MySQL は CODE カラムが NULL であるレコードを明示的にチェックし、CODE が「C」に等しくないレコードとともに結果セットに含まれることを確認します。
この状況における MySQL の動作は、MySQL が NULL を未知または未定義の値として扱う方法に起因している可能性があります。 != などの不等比較は、オペランド間に明確な違いがある場合にのみ true を返します。 NULL は未知の値であるため、他の値 (「C」を含む) と異なるとはみなされません。
したがって、不平等比較を使用する場合は、正確な結果を保証するために、必ず NULL 値を明示的に考慮してください。 IS NULL 演算子は、この状況を処理するための信頼できる方法を提供し、関連するすべてのデータが確実に返されるようにします。
以上がMySQL は NULL 値との不等比較をどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。