1

次のテーブル「responses」とIDおよびUS状態のデータベースがあります。

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

私はPHPを使用して、米国の50州のそれぞれの行の総数を出力しています。

したがって、私の出力は次のようになります
。CA:1
NY:2
CO:1
DE:1
など...

私は次のように50のクエリを実行できることを知っています:

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

私の質問は、これを処理するためのより効率的な方法はありますか、それとも50個のクエリを実行する必要がありますか?

4

2 に答える 2

4

GROUP BY句を使用します:

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

GROUP BYの使用に関する優れたチュートリアルはたくさんあり、SQLの最も便利で強力な機能の1つです。

于 2012-10-03T20:02:35.837 に答える
0

すべての結果を:でグループ化するMySQLのGROUP BY句を使用できます。state

SELECT
    state, COUNT(*) AS count
FROM
    `responses`
GROUP BY
    state;
于 2012-10-03T20:03:52.447 に答える