ホームページ > データベース > mysql チュートリアル > SQL で「!=」および「<>」演算子が NULL と比較できないのはなぜですか?

SQL で「!=」および「<>」演算子が NULL と比較できないのはなぜですか?

DDD
リリース: 2025-01-21 14:57:14
オリジナル
786 人が閲覧しました

Why Do " SQL で演算子が NULL と比較できない? " />

SQL での NULL 比較を理解する

SQL では「!=」と「<>」を使用します。不平等チェックのため。 ただし、これらの演算子は、NULL 値では予期しない動作をします。

問題:

次の SQL クエリについて考えてみましょう:

<code class="language-sql">SELECT * FROM MyTable WHERE MyColumn != NULL;
SELECT * FROM MyTable WHERE MyColumn <> NULL;
SELECT * FROM MyTable WHERE MyColumn IS NOT NULL;</code>
ログイン後にコピー

最初の 2 つのクエリは空の結果セットを返しますが、3 番目のクエリは 568 行を正しく返します。 なぜこの矛盾があるのでしょうか?

説明:

「!=」と「<>」 を比較します。 ただし、NULL は値ではありません。それは値が存在しないことを意味します。 したがって、これらの演算子は NULL 比較には適していません。

代わりに IS NULL または IS NOT NULL を使用してください。これらの述語は、値の有無を特にチェックします。 3 番目のクエリが成功したのは、IS NOT NULL.

を正しく使用したためです。

キーポイント:

  • NULL 以外の値をテストするには、IS NOT NULL を使用します。
  • 「<>」を使用しますまたは「!=」を使用して、NULL 以外の特定の値と比較します。
  • NULL は、欠損データを表すため、どの値とも等しい、または等しくないと見なすことはできません。

以上がSQL で「!=」および「<>」演算子が NULL と比較できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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