MySQL排名功能

时间:2015-05-15 08:47:16

标签: mysql database

我正在尝试使用表格中的数据创建排名系统。它有2列,名称和分数。一个用户可以有多个分数。这就是我到目前为止所做的:

("SELECT name, score, FIND_IN_SET( score, (SELECT GROUP_CONCAT ( score ORDER BY score DESC ) FROM data )) AS rank FROM scores");

但是,当我只需要最高分时,此命令会列出所有用户之前的分数。

有谁知道我怎么做到这一点?

3 个答案:

答案 0 :(得分:0)

尝试

SELECT name, sum(score) from scores group by name order by sum(score) desc limit 1

如果你不想总结,那么使用

SELECT name, max(score) from scores

答案 1 :(得分:0)

以下查询将分别以最高分的顺序弹出名称列表。

select name, max(score) as score from scores  group by name order by score desc

答案 2 :(得分:-1)

您可以使用SELECT DISTINCT名称,得分......
并选择TOP 1和ORDER BY