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

SQL で「NULL != NULL」が FALSE を返すのはなぜですか?

Linda Hamilton
リリース: 2024-12-31 20:34:10
オリジナル
362 人が閲覧しました

Why Does `NULL != NULL` Return FALSE in SQL?

NULL 不等式が偽である理由

SQL の 3 項論理の適用は、NULL が NULL と等しくない理由を理解する上で重要な役割を果たします。 3 値論理では、NULL は特定の値ではなく、未知の値を表します。この概念は、等価性テストと不平等性テストの評価をガイドします。

等価性を評価する場合、2 つの NULL 値は等しいとも等しくないともみなされません。これは、未知の状態を別の未知の状態と決定的に比較することができないためです。したがって、式 (NULL = NULL) は NULL を返し、明確な答えがないことを示します。

不等式テストの場合、(NULL != NULL) も FALSE を返します。これは、三値論理では、未知の値が別の未知の値と等しくないことを明確に宣言できないためです。したがって、それらが等しいかどうかは不明のままです。

不等性チェックの意味

上記の議論は、式 (A != B) が次の場合に十分であることを明らかにしています。 A または B のいずれかが NULL であっても、不平等をテストします。これは、三値論理ルールにより、NULL 値を含む操作は不明のままであると規定されているためです。したがって、式 (A != B) は、A と B の両方が NULL の場合に FALSE を返し、最終的な答えがないことを示します。

A と B の両方が NULL の場合に TRUE の結果を明示的に必要とする場合は、より冗長な式を使用できます:

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

ただし、この条件は TRUE の結果が必要な特定のユースケースに対応していることに注意することが重要です。 NULL 値。ほとんどの場合、三値論理原則に従うため、より単純な式 (A != B) で十分です。

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

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