我有一个MYSQL5数据库和PHP5。我需要一个游戏网站索引页,只选择从每个类别的前12个游戏查询。这是我到目前为止所拥有的。
$db->query("SELECT * FROM `games` WHERE status = 'game_published' AND `featured` = '1' ORDER BY `category`");然后php代码将相同类别的游戏分组在一起并显示它们。但是,是的,它并没有像我想要的那样限制每个类别的游戏数量。
下面是该表的结构: i49.tinypic.com/aysoll.png
这里有一篇博客文章,听起来像是我想要做的:http://www.e-nformation.net/content/view/title/MySQL+Top+N+in+each+group+(group+inner+limit),但我不明白它的意思。
任何帮助都是非常感谢的。
发布于 2010-02-07 08:15:57
可能有一个更好的解决方案,但您可以只为每个类别执行一个查询。首先获取类别列表:
SELECT DISTINCT(category) FROM `games`;然后获取每个结果并查询12行:
SELECT * FROM games WHERE status = 'game_published'
AND `featured` = '1' AND `category` = $category LIMIT 12;当然,您需要添加某种排名行(并按其排序)才能获得top 12。
注意:可能有一种方法可以用一个查询就能做到这一点,但我现在想不起来。
https://stackoverflow.com/questions/2215261
复制相似问题