• NULL 表示未知值,与空字符串或零值不同。
  • 如果对 NULL 进行比较(如 = NULL 或 <> NULL),结果会为 FALSE,因此必须使用 IS NULL 和 IS NOT NULL。

实战

查询字段为 NULL

SELECT *
FROM your_table
WHERE your_column IS NULL;

查询字段不为 NULL

SELECT *
FROM your_table
WHERE your_column IS NOT NULL;

分开统计为 NULL 和不为 NULL 的记录

SELECT
COUNT(CASE WHEN your_column IS NULL THEN 1 END) AS null_count,
COUNT(CASE WHEN your_column IS NOT NULL THEN 1 END) AS not_null_count
FROM your_table;

引申

IS NULL 是否包含 ” 或 0?

IS NULL 只会匹配 NULL 值,而不会匹配空字符串 (”) 或数字 0。

  • NULL 表示缺失或未知的值,通常表示该列没有任何有效的数据。
  • 空字符串 (”) 是一个长度为零的字符串,表示一个有效的空文本值。
  • 数字 0 是一个数值,表示零,并且是一个有效的数字。

如果你想同时查询 NULL、空字符串 (”) 和 0,可以使用 OR 来组合多个条件:

SELECT *
FROM your_table
WHERE your_column IS NULL OR your_column = ” OR your_column = 0;

 

作者 admin

百度广告效果展示