答案是使用COUNT(*)统计总行数,COUNT(列名)统计非空值,COUNT(DISTINCT 列名)统计去重后数量,结合WHERE可条件统计,大表可优化查询。

在 MySQL 中统计表中记录数量,最常用的方法是使用 COUNT() 函数。根据具体需求,可以选择不同的写法来获取行数。
1. 统计表总行数(包含所有行)
使用 COUNT(*) 是最标准的方式,它会统计表中的所有记录,包括 NULL 值的字段行。示例:
Yes!Sun基于PHP+MYSQL技术,体积小巧、应用灵活、功能强大,是一款为企业网站量身打造的WEB系统。其创新的设计理念,为企业网的开发设计及使用带来了全新的体验:支持前沿技术:动态缓存、伪静态、静态生成、友好URL、SEO设置等提升网站性能、用户体验、搜索引擎友好度的技术均为Yes!Sun所支持。易于二次开发:采用独创的平台化理念,按需定制项目中的各种元素,如:产品属性、产品相册、新闻列表
2. 统计某列非空值的数量
如果你只关心某一列中有值的记录数(忽略 NULL),可以使用 COUNT(列名)。示例:
SELECT COUNT(email) FROM users; 这只会统计 email 字段不为 NULL 的记录数量。3. 统计去重后的数量
如果想统计某一列中不同值的个数(去重),可以用 COUNT(DISTINCT 列名)。示例:
SELECT COUNT(DISTINCT city) FROM users; 这会返回 users 表中不同城市的数量。4. 带条件的统计
结合 WHERE 子句,可以统计满足特定条件的记录数。示例:
SELECT COUNT(*) FROM users WHERE age > 18; 统计年龄大于 18 的用户数量。基本上就这些常用方式。对于大表,COUNT(*) 查询可能较慢,可考虑添加索引或使用近似值(如查看 information_schema 中的表行数估算)。但精确计数仍推荐使用 COUNT(*)。









