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

吃猫的鱼
2022-12-11 / 0 评论 / 153 阅读 / 正在检测是否收录...

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

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


分数相同,排名并列写法

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的等级排名了。


2

评论 (0)

取消
友情链接 文章阅读: 网站地图