COUNT函数用于统计行数,包括COUNT()统计所有行、COUNT(列名)统计非NULL值、COUNT(1)与COUNT()性能相近,且可结合WHERE实现条件计数。
MySQL中的COUNT函数用于统计行数
,常用于查询表中满足条件的记录数量。它属于
聚合函数
,通常与SELECT语句一起使用,能帮助我们快速获取数据的数量信息。
1. COUNT(*) 统计所有行
使用
COUNT(*)
可以统计表中的总行数,包括NULL值的行。
例如:
这条语句返回users表中所有记录的数量,不管任何字段是否为NULL。
2. COUNT(列名) 统计非NULL值的行
当指定某一列为参数时,
COUNT(列名)
只统计该列中非NULL的值。
例如:
如果age字段有部分记录为NULL,这些记录不会被计入总数。
3. COUNT(1) 与 COUNT(*) 的区别
COUNT(1)
中的“1”是常量,表示每一行都返回一个值,效果上与 COUNT(*) 基本一致,都会统计所有行。
常见写法:
在大多数情况下,COUNT(1) 和 COUNT(*) 性能相近,具体选择更多是习惯问题。
MySQL(Linux)
MySQL 9.6.0是面向Linux平台的2026年创新版本,核心架构迎来重大革新。其将外键约束与级联操作从InnoDB引擎层上移至SQL层,确保所有数据变更均被完整记录至Binlog,彻底解决了CDC(变更数据捕获)与主从复制中的数据不一致难题。此外,该版本引入container_aware启动选项以原生适配容器环境,并对审计日志进行了组件化重构,为追求极致数据一致性与云原生体验的开发者提供了全新选择。
下载
4. 结合 WHERE 条件进行条件计数
可以在 COUNT 函数中结合 WHERE 子句,统计满足特定条件的行数。
示例:
这条语句统计状态为 active 的用户数量。
也可以使用条件表达式进行更复杂的统计:
这样可以同时统计总人数和成年人数。
基本上就这些。COUNT函数简单但非常实用,掌握它的不同用法能有效提升查询效率。
SELECT COUNT(*) FROM users;
SELECT COUNT(age) FROM users;
SELECT COUNT(1) FROM orders;
SELECT COUNT(*) FROM users WHERE status = 'active';
SELECT
COUNT(*) AS total,
COUNT(CASE WHEN age >= 18 THEN 1 END) AS adults
FROM users;
