私のテーブル
id Category Name
1 Sports name1
2 Food name2
3 Sports name3
4 Social name4
5 TV name5
6 Food name6
7 Sports name7
8 TV name8
ご覧のとおり、各要素 Name にはカテゴリがあります。現時点でのクエリは次のとおりです。
SELECT * FROM interests ORDER BY category DESC;
次に、PHP でカテゴリ別にグループ化し、それぞれの名前フィールドで上位 3 つを数えます。私は同じことをしたいのですが、MySQL (可能であれば) では、大量のデータがあり、毎回すべてのテーブルをクエリしたくないので、カテゴリの量を上位 3 つに制限したいと考えています。 2までの名前。
私は試しました: SELECT *,COUNT(*) as catnumber FROM interests GROUP BY category ORDER BY catnumber DESC
LIMIT 5 ただし、名前要素が 1 つの上位 5 つのカテゴリを教えてください (可能な場合は最大 2 つ必要です)。したがって、結果は multiarray の結果のようなものになるはずです:
Categories = array('Sports' => array('name1', 'name3','name7'), 'Food' => array('name2','name6'), 'TV' => array('name5','name8'))
これは可能ですか?