Php选择各种一种

时间:2016-02-26 22:18:41

标签: php mysql

例如我有很多用户,他们每个人都选择了他们喜欢的游戏,现在他们推荐的同一个mysql行(竖起大拇指)。 示例数据库:

  

(昵称):伦纳德,(推荐):999,(游戏):马里奥; (昵称):   Nikky,(推荐):1999,(游戏):Counter-Strike(昵称):Sam,   (推荐):199,(游戏):AION

现在我想做的是为每个游戏选择最推荐的用户而不做双重mysql请求,这可能吗?

SELECT * FROM users ORDER BY建议使用DESC

这只是按照建议的数量显示所有这些,但我想要的是每个游戏最多推荐1,因为有许多用户对同一游戏有一堆推荐。

5 个答案:

答案 0 :(得分:2)

您可以简单地将GROUP BY添加到ORDER BY

SELECT * FROM users GROUP BY game ORDER BY recommends DESC

SqlFiddle demo

答案 1 :(得分:1)

您可以使用GROUP BY子句根据一列合并多个记录,并计算COUNT()。很难看到你的完整架构,但有点像:

SELECT users.*, COUNT(users.recommends) AS total_recommends FROM users ORDER BY recommends DESC GROUP BY game

答案 2 :(得分:1)

您可以使用分组依据。

SELECT users.*, MAX(user.recommends) AS maxrec GROUP BY game;

答案 3 :(得分:0)

*one = x;
*two = y;
*three = z;

小提琴演示:http://sqlfiddle.com/#!9/43486/13/0

答案 4 :(得分:0)

如果我理解,似乎你想要的是:

SELECT * FROM users group by game ORDER BY recommends DESC 

group by使每个游戏只检索到一个用户,order by检索具有高分的用户。