一、查出所有用户和他们的经验排名(sql语句如下)
/* 查出所有用户和他们的经验排名
* userId string 用户id
* exp int 经验
* @ranknum int 索引数,每条索引数就是排名数
* (select (@ranknum :=0)) b :这句是必不可少,声明@ranknum索引值的初始值。)
*/
SELECT userId,exp,(@ranknum:=@ranknum+1) as rank FROM userList,(select (@ranknum :=0) ) b ORDER by exp desc limit 20;
二、查出某个用户在所有用户经验中的排名(sql语句如下)
/* 查出某个用户在所有用户经验中的排名
* userId string 用户id
* exp int 经验
* @ranknum int 索引数,每条索引数就是排名数
* u 查出所有用户和他们的经验排名
* (select (@ranknum :=0)) b :这句是必不可少,声明@ranknum索引值的初始值。)
* @example 查询用户id为'10005'
*/
select u.* from(select userId,exp,(@ranknum:= @ranknum+ 1) as rank from userList,(select(@ranknum := 0)) b order by exp desc) u where u.userId= 10005;