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

MySQL 查詢 NULL 與非 NULL 字段:IS NULL / IS NOT NULL 正確用法

     編輯:MySQL 綜合教學

核心語法


-- 查詢字段為 NULL
SELECT * FROM tbl WHERE col IS NULL;

-- 查詢字段不為 NULL
SELECT * FROM tbl WHERE col IS NOT NULL;

實戰演示

準備數據


UPDATE test SET t_birth = NULL WHERE t_id = 1;
-- t_id=1 的 t_birth 置為 NULL

查詢驗證


mysql> SELECT * FROM test WHERE t_birth IS NULL;
+------+--------+-------+------------+
| t_id | t_name | t_password | t_birth |
+------+--------+-------+------------+
| 1    | name1  | ...   | NULL       |
+------+--------+-------+------------+

mysql> SELECT * FROM test WHERE t_birth IS NOT NULL;
+------+--------+-------+------------+
| t_id | t_name | t_password | t_birth |
+------+--------+-------+------------+
| 2    | name2  | ...   | 2013-01-01 |
+------+--------+-------+------------+

常見誤區

錯誤寫法原因正確寫法
WHERE col = NULLNULL 不參與任何比較運算,結果永遠為 UNKNOWNWHERE col IS NULL
WHERE col != NULL同理,永遠 UNKNOWNWHERE col IS NOT NULL
WHERE col = ''空字符串 ≠ NULL按業務意圖選擇

進階技巧

  • COALESCE(col, 'default'):將 NULL 替換為指定值參與運算/顯示
  • IFNULL(col, 0):MySQL 專用簡寫
  • NULLIF(expr1, expr2):兩值相等返回 NULL,否則返回 expr1

統計 NULL 個數


SELECT COUNT(*) - COUNT(col) AS null_count FROM tbl;
-- 或
SELECT SUM(CASE WHEN col IS NULL THEN 1 ELSE 0 END) FROM tbl;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved