一、查出所有用户和他们的分数排名(sql语句如下)
/* 查出所有用户和他们的分数排名
* id string 用户id
* score int 分数
* @ranknum int 索引数,每条索引数就是排名数
* (select (@ranknum :=0)) b :这句是必不可少,声明@ranknum索引值的初始值。)
*
* @author zhenyuya <zhenyuya@163.com>
*/
select id,score,(@ranknum:=@ranknum+1) as rank from user,(select (@ranknum :=0) ) b order by score desc;
二、查出某个用户在所有用户分数中的排名(sql语句如下)
/* 查出某个用户在所有用户分数中的排名
* id string 用户id
* score int 分数
* @ranknum int 索引数,每条索引数就是排名数
* u 查出所有用户和他们的分数排名
* (select (@ranknum :=0)) b :这句是必不可少,声明@ranknum索引值的初始值。)
*
* @author zhenyuya <zhenyuya@163.com>
* @example 查询用户id为'20170616'
*/
select u.rank from (
select id,(@ranknum:=@ranknum+1) as rank from user,(select (@ranknum :=0) ) b order by score desc
)u where u.id="20170616";
相信可以解决你的问题! -_- O0O