首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >高级SQL查询。每个类别的前12名(MYSQL)

高级SQL查询。每个类别的前12名(MYSQL)
EN

Stack Overflow用户
提问于 2010-02-07 07:58:42
回答 4查看 1.9K关注 0票数 5

我有一个MYSQL5数据库和PHP5。我需要一个游戏网站索引页,只选择从每个类别的前12个游戏查询。这是我到目前为止所拥有的。

代码语言:javascript
运行
复制
$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),但我不明白它的意思。

任何帮助都是非常感谢的。

EN

Stack Overflow用户

发布于 2010-02-07 08:15:57

可能有一个更好的解决方案,但您可以只为每个类别执行一个查询。首先获取类别列表:

代码语言:javascript
运行
复制
SELECT DISTINCT(category) FROM  `games`;

然后获取每个结果并查询12行:

代码语言:javascript
运行
复制
SELECT * FROM games WHERE status = 'game_published'  
AND `featured` =  '1' AND `category` = $category LIMIT 12;

当然,您需要添加某种排名行(并按其排序)才能获得top 12。

注意:可能有一种方法可以用一个查询就能做到这一点,但我现在想不起来。

票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2215261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档