首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 空值處理三劍客:ISNULL、IFNULL、NULLIF 差異詳解

     編輯:MySQL 綜合教學

MySQL 空值處理三劍客:ISNULL、IFNULL、NULLIF 差異詳解

1. ISNULL(expr)

  • 功能:判斷 expr 是否為 NULL
  • 返回:1(是 NULL) / 0(非 NULL)
  • 示例:SELECT ISNULL(NULL), ISNULL('abc'); -- 1, 0

2. IFNULL(expr1, expr2)

  • 功能:expr1 非 NULL 返回 expr1,否則返回 expr2
  • 等價:CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END
  • 示例:SELECT IFNULL(NULL, 'default'), IFNULL('val', 'default'); -- 'default', 'val'

3. NULLIF(expr1, expr2)

  • 功能:expr1 = expr2 返回 NULL,否則返回 expr1
  • 等價:CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END
  • 示例:SELECT NULLIF(5,5), NULLIF(5,3); -- NULL, 5

對比速查表

函數參數邏輯典型用途
ISNULL1是否為 NULL條件判斷、統計空值行數
IFNULL2首個非 NULL字段默認值、避免 NULL 參與運算
NULLIF2相等則 NULL除零保護 NULLIF(divisor,0)、清洗特定值

實戰提示

  • COALESCE(a,b,c...) 為 IFNULL 多參數版,返回首個非 NULL
  • IFNULL(col,0) 可讓數值列參與 SUM/AVG 等聚合不受 NULL 影響
  • NULLIF(str,'') 將空字符串轉 NULL,便於唯一索引區分空值
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved