51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

mysql实现查询某个字段数据在整个表中排名情况



今天在做一些业务处理的时候遇到的一个问题,就是需要在一张数据表当中查询指定字段在整张表的排名,并且获取这个排名。


于是上网搜索相关资料学习。

将相关代码记录以此便于日后复习查看!


分数相同,排名并列写法

select score ,
if(@prerk = score,@rk,@rk:=@rk+1) as rank ,
@prerk:=score 
 from 表名,(select @rk:=0,@prerk:=NULL)  a
-- where score >0 
order by score desc 

上述sql语句查询了score这个字段,在书表当中的排名,查询结果后出现的字段是score,rank,@prerk:=lxdd。

rank就是排名了。

可以再嵌套一个select语句,再次查询指定的用户的score的分数。

于是嵌套了一个select语句

SELECT 
    *
    from 
    (select $rank_title ,id,
    if(@prerk = $rank_title,@rk,@rk:=@rk+1) as rank ,
    @prerk:=$rank_title 
    from user,(select @rk:=0,@prerk:=NULL)  a
    order by `$rank_title` desc) rank
    where `id` = $userid ;

上述语句查询 后就是指定的userid的等级排名了。

赞(1)
未经允许不得转载:工具盒子 » mysql实现查询某个字段数据在整个表中排名情况