如何根据得分和杀戮给我的玩家分配独特的等级(mysql数据库)
我不想要的,但现在有:
Rank | Name | Score | Kills
1 | Bob | 900 | 45
2 | Moby | 400 | 35
2 | Snake | 400 | 38
3 | Dick | 240 | 20
我想要但没有的是:
Rank | Name | Score | Kills
1 | Bob | 900 | 45
2 | Snake | 400 | 38
3 | Moby | 400 | 35
4 | Dick | 240 | 20
当玩家有相同的得分和杀戮时,我仍然不希望他们有相同的等级,我有。。。你能帮忙吗,我用的是:
SELECT
FIND_IN_SET(score,(SELECT GROUP_CONCAT(score ORDER BY score DESC) FROM rankme)) rank,
T1.name,
T1.score,
T1.kills,
T1.deaths,
T2.credits,
T1.connected
FROM
rankme T1
LEFT JOIN
store_players T2
ON
T1.name = T2.name
ORDER BY
T1.score DESC
编辑:我试过按t1.score,t1.kills排序,它确实通过移动杀戮最多的玩家来起作用,但是它仍然给两个玩家相同的排名。你怎么解决这个问题?
1条答案
按热度按时间qkf9rpyu1#
一个选项使用相关子查询:
演示
请注意,这个查询仍然有一个缺点:如果两个人在得分和击杀上完全并列,那么我们仍然会得到一个重复的排名。如果你关心这个问题,那就告诉我们你想怎样打破僵局。