首頁 > 資料庫 > mysql教程 > 為什麼SQL中「!=」和「<>」運算子無法與NULL比較?

為什麼SQL中「!=」和「<>」運算子無法與NULL比較?

DDD
發布: 2025-01-21 14:57:14
原創
830 人瀏覽過

Why Do " SQL 中運算子與 NULL 比較失敗? ” />

理解 SQL 中的 NULL 比較

SQL 使用「!=」和「」用於不平等檢查。 但是,這些運算符在使用 NULL 值時會出現意外行為。

問題:

考慮這些 SQL 查詢:

<code class="language-sql">SELECT * FROM MyTable WHERE MyColumn != NULL;
SELECT * FROM MyTable WHERE MyColumn <> NULL;
SELECT * FROM MyTable WHERE MyColumn IS NOT NULL;</code>
登入後複製

前兩個查詢傳回空結果集,而第三個查詢正確傳回 568 行。 為什麼會出現這種差異?

說明:

“!=”和“”比較。 然而,NULL 不是一個值;而是一個值。它表示沒有值。 因此,這些運算符不適合NULL比較。

使用 IS NULLIS NOT NULL 來代替。這些謂詞專門檢查值是否存在。 第三個查詢的成功源自於其正確使用IS NOT NULL.

重點:

  • 要測試非 NULL 值,請使用 IS NOT NULL
  • 使用「」或「!=」與特定的非NULL值進行比較。
  • NULL 不能被視為等於或不等於任何值,因為它代表缺少的資料。

以上是為什麼SQL中「!=」和「<>」運算子無法與NULL比較?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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