ホームページ > データベース > mysql チュートリアル > 「CODE!='C'」が MySQL クエリで NULL 値を除外するのはなぜですか?

「CODE!='C'」が MySQL クエリで NULL 値を除外するのはなぜですか?

Susan Sarandon
リリース: 2025-01-09 19:37:45
オリジナル
539 人が閲覧しました

Why Does

MySQL での NULL 値の比較

MySQL では、NULL 値を含むカラムの比較は、その動作が標準的な等価比較とは異なるため、課題が生じる可能性があります。この記事では、「SELECT * from TABLE where CODE!='C'」のようなクエリが、「C」が NULL でない場合でも CODE=NULL の行を除外する理由を説明します。

NULL 比較動作

列を NULL 以外の値 (「CODE!='C'」など) と比較する場合、クエリは CODE が 'C' と一致する行を返し、NULL を含む他のすべての値を除外します。この動作は、SQL が NULL を標準の比較に参加しない一意の値として扱うために発生します。

比較に NULL 値を含めるには、IS NULL または IS NOT NULL 演算子を使用して明示的にチェックする必要があります。たとえば、次のクエリは、CODE が NULL であるか、「C」に等しくないすべての行を返します:

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

CODE!='C' の動作の説明

「CODE!='C'」が CODE=NULL の行を返さない理由は、クエリが NULL を含む比較に対して false と評価されるためです。 「C」が NULL でない場合でも、NULL 値と比較すると常に false になります。

代替比較演算子

MySQL は、NULL を含む値を比較するために使用できる代替比較演算子「<=」 (以下) を提供します。 「x

「CODE!='C'」の代わりに「CODE <= 'C' OR CODE IS NULL」を使用すると、CODE が NULL であるか、'C' に等しくないすべての行を返すことができます。

以上が「CODE!='C'」が MySQL クエリで NULL 値を除外するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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