首頁 > 資料庫 > mysql教程 > 為什麼在 SQL 中 `NULL != NULL` 不總是回傳 True?

為什麼在 SQL 中 `NULL != NULL` 不總是回傳 True?

Barbara Streisand
發布: 2025-01-03 08:49:39
原創
729 人瀏覽過

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

為什麼NULL 不等式並不總是返回True

當將NULL 值與不等式運算符(“!=”)進行比較時,它是通常假設結果應該為true,因為NULL 不等於其自身。但是,在 SQL 等某些上下文中,這種假設是無效的。

SQL 的三元邏輯

在 SQL 中,NULL 表示未知值。這就引入了超越真假的第三種邏輯狀態,稱為「未知」。因此,與 NULL的不等式比較遵循三元邏輯,其中結果可以是以下三個選項:

  • 未知

範例:

考慮下列語句:

WHERE (A <> B)
登入後複製

如果A 和 B 都為 NULL,上面的表達式將傳回“unknown”,因為無法確定它們是否真正不相等或是否都未知。

不等式檢查的含義

這個三元邏輯表明簡單的不等式檢查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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板