ホームページ >データベース >mysql チュートリアル >SQL における IS NULL と = NULL: Null 値をテストする正しい方法は何ですか?
NULL 値の有無に基づいて行をフィルタリングすることは、SQL の一般的なタスクです。 IS NULL
と = NULL
を使用した NULL 値のテストの微妙な違いを理解することは、正確なクエリを作成するために重要です。
IS NULL
は、フィールドに NULL 値が含まれているかどうかをテストするために特別に設計された SQL 演算子です。 =
などの値演算子とは異なり、IS NULL
の結果は、フィールドが NULL の場合は TRUE、それ以外の場合は FALSE になります。
IS NULL
とは異なり、field = NULL
はフィールドの値を NULL リテラルと比較しようとする等価比較です。 SQL では、NULL 値は、他の値 (別の NULL であっても) と NULL 自体と比較されます。 SQL ロジックによれば、NULL 値は本質的に不明であるため、直接の等価比較は信頼できません。
WHERE
句では、field = NULL
を含む条件は常に NULL と評価され、SQL では FALSE とみなされます。したがって、field = NULL
は NULL 値を含む行を適切にフィルターできません。この目的には、field IS NULL
を使用する必要があります。
次の SQL ステートメントを考えてみましょう:
<code class="language-sql">SELECT * FROM table WHERE column = NULL;</code>
このステートメントは、column
フィールドに NULL 値が含まれている場合でも行を返しません。 NULL 値を正しくフィルタリングするには、正しいステートメントは次のようになります:
<code class="language-sql">SELECT * FROM table WHERE column IS NULL;</code>
IS NULL
と = NULL
は似ていますが、SQL クエリで NULL 値をテストするには IS NULL
が推奨される正しい方法であることを覚えておくことが重要です。 SQL は NULL 値を独自に処理するため、= NULL
を使用すると誤解を招く結果が生じる可能性があります。正しいクエリ方法に従うことで、開発者は SQL コードの正確さと効率を確保できます。
以上がSQL における IS NULL と = NULL: Null 値をテストする正しい方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。