SQL 获取排名排序后的名次

来源:互联网 发布:亚丝娜的剑数据 编辑:程序博客网 时间:2024/05/23 17:49

一、查出所有用户和他们的分数排名(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




阅读全文
1 0
原创粉丝点击