sql count和order

时间:2016-02-21 18:42:24

标签: mysql sql

我有一个数据库和两个显示相同内容的命令

SELECT name, score
FROM sm_easyrank
ORDER BY score DESC, name ASC
LIMIT 0, 10

选择按分数排序的玩家,如果两个玩家的分数相同,则按名称排序。

SELECT count(*)
FROM sm_easyrank
WHERE score >= (SELECT (score)
                FROM sm_easyrank
                WHERE steamid = '%s'
               )

这将计算出我之前有多少玩家。

问题是:我在第一顺序有一个位置,在第二顺序有另一个位置(如果我与其他人有相同的分数)。我想订购名字相同的第二名球员。

sm_easyrank是表名

分数是一个分数(数字列)的列 steamid是一个独特的身份 name是一个名为people的列 抱歉我的英文!

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您可以使用JOIN以及包含得分和名称的条件来执行您想要的操作:

SELECT count(*)
FROM sm_easyrank s JOIN
     sm_easyrank s2
     ON s2.steamid = '%s' AND
        (s.score > s2.score OR
         s.score = s2.score AND s.name <= s2.name
        );