根据条件获取当前排名
uid 用户id
score 分数
game_time 游戏时间
create_time 创建时间
根据分数、游戏时间、记录的插入时间 获取当前用户的排名
排名方式:分数大到小 游戏时间小到大,记录时间小到大
uid 用户id
score 分数
game_time 游戏时间
create_time 创建时间
根据分数、游戏时间、记录的插入时间 获取当前用户的排名
排名方式:分数大到小 游戏时间小到大,记录时间小到大
select ,(select count() from table as a where a.score>b.score)+1 as rank from table as b where b.uid=581
查询分数大于那个用户的个数来查询排名,rank是排名
5 回答3.3k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.3k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
5 回答1.4k 阅读
没看清楚题目不好意思。
我想的笨办法是用二条sql。
假设分数为10000,游戏时间10s,创建时间,2018-11-1
先用第一条sql算出大于10000的有多少条.得 count1
SELECT count(id) FROM
table
WHEREscore
> '10000';再用一条sql算出score=10001,game_time<10s 的一共几条.得 count2.
SELECT count(id) FROM
table
WHEREscore
> '10000' ANDgame_time
< '10s';排名结果为 count1+count2;如果要用一条语句 ,可以用子查询吧,目前没有思路。