在 MySQL 中计算表的行数
Raymond Peter
2023年1月30日
2022年5月13日
本教程文章将向你展示如何检索 MySQL 表中的记录数。我们还将向你展示如何应用条件来计算符合特定条件的行。
计算 MySQL 表中的所有行
要检索表中的记录计数,我们可以进行以下简单查询。
SELECT COUNT(*) FROM 'table name';
只要至少一列中有值,它将计算表中的所有行。
注意
以下仅是如何实现各种方法的示例。它们不作为数据的实际记录。
添加表的名称 supermarkets
以计算记录数。在这种情况下,我们希望计算加州的超市数量。
SELECT COUNT(*) FROM supermarkets;
结果:
| ROW COUNT |
| :-------- |
| 4699 |
在 MySQL 中添加条件以计算行数
你可以添加更多条件来指定要计算的行数。这在查找具有大型表的特定数据时很有帮助。
计数表达式
使用 Count(expression)
计算指定列中没有空格的总行数。
SELECT COUNT(city) FROM supermarkets;
结果:
| Row Count |
| --------- |
| 4697 |
删除城市列中带有空格的行时,总计数有 2 行的差异。这一结果将提供更准确的加州超市数量。
使用 Where 指定值
你还可以通过以下指定来计算一个城市的超市数量。
SELECT COUNT(*) FROM supermarkets WHERE city = 'San Diego'
结果:
| Row Count |
| --------- |
| 896 |
它指定了圣地亚哥市内的超市数量。
按值分组
要计算每个城市的超市数量,请选择要用于分组的列,在本例中为城市,并将其放在 SELECT
之后。在表名后使用 GROUP BY
语句来确定要使用哪一列对数据进行分组。
SELECT city, COUNT(*) FROM supermarkets GROUP BY city;
结果:
| city | Count |
| ------------- | ----- |
| Los Angeles | 2777 |
| San Francisco | 1024 |
| San Diego | 896 |
所有三个城市的总值为 4,697,与初始 count(expression)
语句中的值相匹配。
注意
确保删除 MySQL 中的
ONLY_FULL_GROUP_BY
模式已关闭。