我正在使用MySQL,我有一个表可以保存玩家得分,一个玩家可以记录多个分数。我正在尝试找到使用MySQL ORDER BY关键字对玩家进行排名的最佳方法。
现在我正在做的是:
SELECT DISTINCT t.userName FROM (SELECT userName, score FROM scoreTable ORDER BY score DESC) t;
要使用它进行排名,我假设主查询维护子查询的顺序。
这个假设是否正确?到目前为止,我所有的测试都能正确维护订单是否存在不起作用的情况?
答案 0 :(得分:2)
下面的内容对您有用吗?
SELECT userName, MAX(score) AS max_score
FROM scoreTable GROUP BY username
ORDER BY max_score DESC
答案 1 :(得分:1)
我不相信这是行为保证,但一般都是。如果您希望以这种方式排序最终结果,那么在外部查询上使用ORDER BY
可能会更好。