我有一个数据库,其中包含下表“响应”,其中包含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个查询?
答案 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;