SQL の != 演算子と NULL: よくある誤解
SQL で、!=
(または <>
) を使用して NULL 値をチェックすると、予期しない結果が発生します。 非 NULL 値を正しく識別する IS NOT NULL
とは異なり、!=
と <>
は NULL と比較した場合に一致を返しません。この動作は、SQL における NULL の基本的な性質に由来しています。
NULL は、特定の値そのものではなく、値の不在を表します。 したがって、比較する値が定義されていないため、!=
や <>
などの標準の比較演算子は NULL と等しいか不等かを判断できません。
SQL は、IS NULL
および IS NOT NULL
述語を使用して NULL との比較を処理します。これらの述語は、別の値との同等性ではなく、値の存在または非存在を評価します。
これは、SQL Server だけでなく、主要な SQL データベース全体で一貫しています。これは、値の不在としての NULL の定義の直接の結果です。
覚えておくべき重要なポイント:
IS NOT NULL
を使用します。= 'YOUR_VALUE'
を使用します。=
、!=
、<>
) は未定義であり、期待される結果は得られません。 代わりに IS NULL
または IS NOT NULL
を使用してください。以上がSQL で != が NULL と比較できないのはなぜですか? 代わりに何を使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。