COUNT函数用于统计行数,包括COUNT()统计所有行、COUNT(列名)统计非NULL值、COUNT(1)与COUNT()性能相近,且可结合WHERE实现条件计数。
MySQL中的COUNT函数用于统计行数,常用于查询表中满足条件的记录数量。它属于聚合函数,通常与SELECT语句一起使用,能帮助我们快速获取数据的数量信息。
1. COUNT(*) 统计所有行
使用 COUNT(*) 可以统计表中的总行数,包括NULL值的行。
例如:SELECT COUNT(*) FROM users;
这条语句返回users表中所有记录的数量,不管任何字段是否为NULL。
2. COUNT(列名) 统计非NULL值的行
当指定某一列为参数时,COUNT(列名) 只统计该列中非NULL的值。
例如:SELECT COUNT(age) FROM users;
如果age字段有部分记录为NULL,这些记录不会被计入总数。
3. COUNT(1) 与 COUNT(*) 的区别
COUNT(1) 中的“1”是常量,表示每一行都返回一个值,效果上与 COUNT(*) 基本一致,都会统计所有行。
常见写法:SELECT COUNT(1) FROM orders;
在
大多数情况下,COUNT(1) 和 COUNT(*) 性能相近,具体选择更多是习惯问题。
4. 结合 WHERE 条件进行条件计数
可以在 COUNT 函数中结合 WHERE 子句,统计满足特定条件的行数。
示例:SELECT COUNT(*) FROM users WHERE status = 'active';
这条语句统计状态为 active 的用户数量。
也可以使用条件表达式进行更复杂的统计:
SELECT COUNT(*) AS total, COUNT(CASE WHEN age >= 18 THEN 1 END) AS adults FROM users;
这样可以同时统计总人数和成年人数。
基本上就这些。COUNT函数简单但非常实用,掌握它的不同用法能有效提升查询效率。








