SQL 的 !=
和 <>
運算子和 NULL 值:澄清
SQL 的 !=
(不等於)和 <>
運算子在遇到 NULL
值時表現出獨特的行為。 要理解這一點需要掌握 SQL 中 NULL
的本質。
NULL
表示缺少值,而不是空字串 ("") 或零 (0)。 它表示某個欄位或列尚未分配資料值。
通常,如果值不同,!=
和 <>
回傳 true
。 然而,這不適用於NULL
。
考慮這個:
SELECT * FROM MyTable WHERE MyColumn != NULL; -- (0 Results)
即使 MyColumn
包含非 NULL
條目,此查詢也會產生零結果。 原因是什麼? !=
和 <>
無法對 NULL
進行操作。他們需要一個具體的值來進行比較。
相反:
SELECT * FROM MyTable WHERE MyColumn IS NOT NULL; -- (568 Results)
此查詢正確傳回 MyColumn
不是 NULL
的所有行。 IS NOT NULL
專門檢查是否存在值 (NULL
)。
總結:NULL
是 SQL 中唯一的值。 使用 !=
或 <>
與 NULL
進行比較總是會得到 false
。 若要準確測試值是否缺失,請使用 IS NOT NULL
運算子。
以上是SQL 中 `!=` 和 `` 運算子如何處理 NULL 值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!