首頁 >資料庫 >mysql教程 >MySQL 的 NULL 安全性等於運算子 () 如何運作?

MySQL 的 NULL 安全性等於運算子 () 如何運作?

Linda Hamilton
Linda Hamilton原創
2025-01-05 16:29:45886瀏覽

How Does MySQL's NULL-Safe Equals Operator () Work?

MySQL 中的不等於NULL 運算子:

使用SQL 查詢時,您可能會遇到 運算符,引發有關其意義和語法的問題。本指南將深入了解該運算符及其應用。

理解

運算子稱為 NULL 安全等於運算子。它類似於常規等於運算子 (=),但在處理 NULL 值時有一個關鍵差異。

常規等於運算子與NULL 安全等於運算子

如果運算元不相等,則常規等於運算子(=) 傳回0;如果運算元相等,則返回1。但是,它將 NULL 值視為特殊情況,在此類比較中產生 NULL 作為結果。

另一方面, 運算子以不同方式處理 NULL 值。如果運算元不相等,則傳回 0;如果相等,則傳回 1,無論其中一個或兩個運算元是否為 NULL。換句話說:

  • 'a' ; 'b' 計算結果為0
  • 'a' 'a ' 計算結果為1
  • 'a' NULL 計算結果為0
  • NULL NULL 計算結果為1

運算符的用處特別明顯在比較中的兩個操作數都可能包含NULL 值並且需要兩個操作數之間的比較結果一致的情況下很有用

該運算符的另一個實際應用是在準備好的語句中,其中佔位符可以無縫處理標量值和NULL 值,而無需修改查詢。

  • 相關運算子
  • MySQL 也提供其他運算子來比較值NULL:
  • IS NULL:

IS NULL:

  • IS NULL:
  • IS NULL如果操作數為NULL,則計算結果為1,否則計算結果為0。
  • IS NOT NULL: 計算結果如果操作數不為 NULL,則為 1;如果操作數不為 NULL,則為 0否則。
這些運算子可以被視為 MySQL 的

運算子的特化。例如:

'a' IS NULL 相當於

'a' ; NULL

'a' IS NOT NULL 相當於

NOT('a' NULL)支援與相容性 運算子是MySQL 特定的,其他資料庫不支援。 SQL:2003 標準引入了一個謂詞,IS [NOT] DISTINCT FROM,其行為與 MySQL 相同 運算子。

此外,以下複雜但普遍支持的表達式也可以達到相同的結果:

CASE WHEN (a = b) or (a IS NULL AND b IS NULL)
     THEN 1
     ELSE 0
END = 1

以上是MySQL 的 NULL 安全性等於運算子 () 如何運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn