我的桌子
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
如您所见,每个元素名称都有一个类别,目前我的查询是:
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 但只给我前 5 个类别,其中包含一个名称元素(如果可用,我最多需要两个类别)。所以结果应该类似于多数组结果:
Categories = array('Sports' => array('name1', 'name3','name7'), 'Food' => array('name2','name6'), 'TV' => array('name5','name8'))
这可能吗?