ホームページ > データベース > mysql チュートリアル > SQL で「NULL != NULL」が常に True を返さないのはなぜですか?

SQL で「NULL != NULL」が常に True を返さないのはなぜですか?

Barbara Streisand
リリース: 2025-01-03 08:49:39
オリジナル
714 人が閲覧しました

Why Doesn't `NULL != NULL` Always Return True in SQL?

NULL を使用した不等式が常に True を返さない理由

NULL 値を不等演算子 ("!=") と比較すると、次のようになります。 NULL はそれ自体と等しくないため、結果は true であると想定されることがよくあります。ただし、SQL などの特定のコンテキストでは、この仮定は無効です。

SQL の三項論理

SQL では、NULL は不明な値を表します。これにより、「不明」として知られる、真と偽を超えた 3 番目の論理状態が導入されます。その結果、NULL との不等比較は 3 項論理に従い、結果は 3 つのうちの 1 つになります。オプション:

  • True
  • False
  • Unknown

例:

検討次のステートメント:

WHERE (A <> B)
ログイン後にコピー

A と B が両方とも NULL の場合、これらが本当に等しくないのか、それとも両方とも不明なのかを判断する方法がないため、上記の式は「unknown」を返します。

不等式チェックの意味

この 3 項ロジックは、単純な不等式チェックを指示します。 NULL を指定すると、常に true が返されるとは限りません。正確な結果を保証するには、「IS NULL」と「IS NOT NULL」を使用して NULL 条件を明示的にチェックする必要があります。

たとえば、次の式は NULL との不等比較を正しく処理します。

WHERE ((A <> B) OR (A IS NOT NULL AND B IS NULL) OR (A IS NULL AND B IS NOT NULL))
ログイン後にコピー

これらの明示的なチェックを組み込むことにより、データベースは NULL 値を含むすべての考えられるケースに対して正しい論理結果 (真、偽、または不明) を決定できます。

以上がSQL で「NULL != NULL」が常に True を返さないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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