ホームページ > データベース > mysql チュートリアル > MySQL が WHERE 句で != 演算子を使用するときに NULL 値を除外するのはなぜですか?

MySQL が WHERE 句で != 演算子を使用するときに NULL 値を除外するのはなぜですか?

DDD
リリース: 2025-01-09 19:51:41
オリジナル
915 人が閲覧しました

Why Does MySQL Exclude NULL Values When Using the != Operator in a WHERE Clause?

NULL 値との MySQL の比較

例の CODE カラムなど、NULL 値を許可するカラムを扱う場合、MySQL がこれらの比較をどのように処理するかを理解することが重要です。 次のクエリで CODE が NULL の行が除外されるのはなぜですか?

<code class="language-sql">SELECT * from TABLE where CODE!='C'</code>
ログイン後にコピー

これは、!= (等しくない) 演算子が NULL 値を明示的にテストしないためです。値が「C」と等しくないかどうかだけがチェックされます。 NULL は欠損値を示す特別な値であるため、特定の値と同等でも不等価でもありません。

NULL 値を含めるには、IS NULL または IS NOT NULL 演算子を使用する必要があります。これらの演算子は、NULL 値の存在を明示的にチェックします。正しいクエリは次のようになります:

<code class="language-sql">SELECT * from TABLE where CODE IS NULL OR CODE!='C'</code>
ログイン後にコピー

IS NULL または IS NOT NULL を使用すると、クエリには CODE が NULL である行と、CODE が 'C' に等しくない行が含まれることが保証されます。これは、OR 演算子が両方の条件を行を一致させるための有効な基準として扱うためです。

要約すると、NULL 値を含む可能性のある列を比較する場合は、常に IS NULL または IS NOT NULL 演算子を使用して、NULL 値の存在を明示的にテストします。そうしないと、比較結果が期待どおりにならない可能性があります。

以上がMySQL が WHERE 句で != 演算子を使用するときに NULL 値を除外するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート