字段中每个值的MYSQL计数

时间:2012-10-03 20:01:09

标签: php mysql sql

我有一个数据库,其中包含下表“响应”,其中包含id和美国州:

*id   *state
1     CA
2     NY
3     NY
4     CO
5     DE

我正在使用PHP输出美国50个州中每个州的总行数。

所以,我的输出看起来像:
CA:1
纽约:2
CO:1
DE:1
等...

我知道我可以像这样运行50个查询:

SELECT * 
FROM  `responses` 
WHERE state='CA'

我的问题是:有没有更有效的方法来处理这个问题,还是我需要运行50个查询?

2 个答案:

答案 0 :(得分:4)

使用GROUP BY子句:

SELECT state, COUNT(*) FROM `responses` GROUP BY state;

使用GROUP BY有many good tutorials,它是SQL最有用和最强大的功能之一。

答案 1 :(得分:0)

您可以使用MySQL的GROUP BY子句,该子句将state对所有结果进行分组:

SELECT
    state, COUNT(*) AS count
FROM
    `responses`
GROUP BY
    state;