Sql 从数据库中获取玩家等级
我有一个RuneScape专用服务器,它将玩家的分数存储在数据库中。 高分加载玩家的分数并将其放入表格中 但现在我无法解决的更难的部分来了:Sql 从数据库中获取玩家等级,sql,mysql,rank,Sql,Mysql,Rank,我有一个RuneScape专用服务器,它将玩家的分数存储在数据库中。 高分加载玩家的分数并将其放入表格中 但现在我无法解决的更难的部分来了: 我想显示玩家的等级。比如:“攻击等级:44,排名12”。因此,它必须找到用户的排名 我怎样才能让它工作?我在谷歌上搜索了两天,什么也没找到。我不知道是否有办法用同样的查询来实现这一点 您可以进行另一个查询,如: pos=从攻击>44的玩家中选择计数(*) 此查询将返回排名高于某人的玩家数量。“加一”部分是让排名从1开始(因为第一个排名不会有任何人超过他)
我想显示玩家的等级。比如:“攻击等级:44,排名12”。因此,它必须找到用户的排名
我怎样才能让它工作?我在谷歌上搜索了两天,什么也没找到。我不知道是否有办法用同样的查询来实现这一点 您可以进行另一个查询,如: pos=
从攻击>44的玩家中选择计数(*)
此查询将返回排名高于某人的玩家数量。“加一”部分是让排名从1开始(因为第一个排名不会有任何人超过他)
例如,如果表格为:
id attack
0 35
1 22
2 121
3 76
pos(3)=1(只有玩家2排名在上面)+1=2您可以创建一个视图(可能)来显示每个玩家的得分。沿着这条思路的一些东西可能会奏效
create view player_scores as
select player_id, sum(score)
from scores
group by player_id
这将给你一排每个球员,他们的总分。有了这个观点,排名就简单了
select count(*)
from player_scores
where sum > (select sum from player_scores where player_id = 1)
该查询将返回得分高于player_id=1的玩家数量
当然,如果在运行查询之前知道玩家的分数,可以将该分数作为参数传递。只要对该列进行了索引,它就会运行得更快。用户级别是否存储在MySQL数据库的另一个表中?也许您可以使用PHPMyAdmin或SQLYog社区来梳理您可以访问的数据。