COUNT(*)统计所有行,包括NULL值;COUNT(列名)仅统计该列非NULL值;COUNT(DISTINCT 列名)统计去重后的唯一值数量;结合WHERE可实现条件统计,灵活适用于各类计数场景。

在MySQL中使用COUNT函数可以统计表中的记录数量,常用于查询数据行数。它会返回匹配指定条件的行数,是聚合函数中最常用的一个。
COUNT(*) 统计所有行
使用 COUNT(*) 可以统计表中所有行的数量,包括NULL值的行。
例如:统计 users 表中的总记录数:
SELECT COUNT(*) FROM users;
这将返回表中所有行的总数,不管列是否包含NULL值。
COUNT(列名) 统计非NULL值的行
当你指定某一列时,COUNT(列名) 只统计该列中非NULL的值。
例如:统计 users 表中 email 不为 NULL 的用户数量:
SELECT COUNT(email) FROM users;
如果某些记录的 email 字段为空(NULL),这些行不会被计入。
COUNT(DISTINCT 列名) 统计唯一值数量
如果你想统计某一列中不同(去重后)的值有多少个,可以使用 COUNT(DISTINCT 列名)。
统计 users 表中不重复的 email 数量:
SELECT COUNT(DISTINCT email) FROM users;
这能帮你了解实际有多少个唯一的邮箱地址。
结合 WHERE 条件进行条件统计
COUNT 通常与 WHERE 子句一起使用,用于统计满足特定条件的记录数。
例如:统计年龄大于25岁的用户数量:
SELECT COUNT(*) FROM users WHERE age > 25;
也可以配合其他字段组合条件,实现更精确的统计。
基本上就这些。根据需求选择 COUNT(*)、COUNT(列名) 或 COUNT(DISTINCT ...),再结合 WHERE 条件,就能灵活统计各种场景下的记录数了。不复杂但容易忽略细节,比如 NULL 值的处理。










