首页/数据/SQL 速查/IS NULL / IS NOT NULL 判空
本包目录(311 条)

IS NULL / IS NOT NULL 判空

NULL 表示“未知”,不能用等号判断;IS [NOT] NULL 是可靠的判空方式,也是计数与条件过滤中常见的坑位。

SQL 速查数据更新于 2026-10-12

示例

示例
SELECT * FROM users WHERE phone IS NULL;
SELECT * FROM users WHERE phone IS NOT NULL;

SELECT COUNT(*)          AS all_rows,
       COUNT(phone)       AS has_phone,
       SUM(phone IS NULL) AS null_phone   -- MySQL:布尔转 0/1
FROM users;
判空IS NULL / IS NOT NULL
错误写法= NULL、<> NULL 永远不成立
聚合COUNT(col) 不统计 NULL;AVG/SUM 忽略 NULL
PostgreSQL 中可写作 SUM((phone IS NULL)::int);MySQL 里布尔表达式本身即 0/1。

易错点

  • WHERE phone = NULL 不报错但永远返回空集,是新手与迁移场景的高频错误
  • NOT (a = b) 与 a <> b 在遇到 NULL 时都为 UNKNOWN,取反逻辑要按三值逻辑重新核对

数据来源与参考

  • MySQL 8.0 Reference Manual · Working with NULL Values
  • PostgreSQL Documentation · IS NULL
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌