Ned*_*ddy 5 php mysql sql database
我有一个MYSQL5数据库和PHP 5.我需要一个游戏网站索引页面的查询,只能从每个类别的游戏中选择前12个.这是我到目前为止所拥有的.
$db->query("SELECT * FROM `games` WHERE status = 'game_published' AND `featured` = '1' ORDER BY `category`");
Run Code Online (Sandbox Code Playgroud)
然后,php代码将相同类别的游戏组合在一起并显示它们.但是,它并没有像我想要的那样限制每个类别的游戏数量.
这正是表的结构:i49.tinypic.com/aysoll.png
这是一篇博客文章,听起来像我想做的:http://www.e-nformation.net/content/view/title/MySQL+Top+N+in+each+group+(group+inner+limit )但我无法理解它.
任何帮助表示赞赏.
这个怎么样?
SELECT * FROM (
SELECT
games.*,
@rn := CASE WHEN @category=category THEN @rn + 1 ELSE 1 END AS rn,
@category := category
FROM games, (SELECT @rn := 0, @category := NULL) AS vars
WHERE status = 'game_published' AND featured = '1'
ORDER BY category
) AS T1
WHERE rn <= 12
Run Code Online (Sandbox Code Playgroud)