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

2023-02-02 10:51:33 浏览数 (3)

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

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

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


分数相同,排名并列写法

代码语言:javascript复制
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语句

代码语言:javascript复制
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的等级排名了。

本文共 178 个字数,平均阅读时长 ≈ 1分钟

0 人点赞