首頁 > 資料庫 > mysql教程 > 為什麼在 WHERE 子句中使用 != 運算子時 MySQL 會排除 NULL 值?

為什麼在 WHERE 子句中使用 != 運算子時 MySQL 會排除 NULL 值?

DDD
發布: 2025-01-09 19:51:41
原創
928 人瀏覽過

Why Does MySQL Exclude NULL Values When Using the != Operator in a WHERE Clause?

MySQL 與 NULL 值的比較

在處理允許 NULL 值的欄位(例如範例中的 CODE 欄位)時,理解 MySQL 如何處理這些比較至關重要。 為何下列查詢將排除 CODE 為 NULL 的行?

<code class="language-sql">SELECT * from TABLE where CODE!='C'</code>
登入後複製

這是因為 !=(不等於)運算子不會明確地測試 NULL 值。它只檢查值是否不等於 'C'。由於 NULL 是表示值缺失的特殊值,它既不等於也不等於任何特定值。

要包含 NULL 值,必須使用 IS NULLIS NOT NULL 運算子。這些運算符明確地檢查 NULL 值的存在與否。正確的查詢應該是:

<code class="language-sql">SELECT * from TABLE where CODE IS NULL OR CODE!='C'</code>
登入後複製

透過使用 IS NULLIS NOT NULL,查詢確保包含 CODE 為 NULL 的行,以及 CODE 不等於 'C' 的行。這是因為 OR 運算子將這兩種條件都視為符合行的有效標準。

總之,當比較可能包含 NULL 值的欄位時,請務必使用 IS NULLIS NOT NULL 運算子來明確測試 NULL 值的存在與否。否則,比較結果可能與預期不符。

以上是為什麼在 WHERE 子句中使用 != 運算子時 MySQL 會排除 NULL 值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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