mysql 排名

现在有一个 scores 积分表,记录用户的积分


image.png

现在要对积分进行排名,并计算用户的名次

SELECT s.passport_id,s.score, @ranking := @ranking + 1 AS ranking
FROM (SELECT @ranking := 0) r, (SELECT * FROM scores ORDER BY score DESC, update_time ASC) AS s;

这段 sql 的意思就是按照积分排名,ranking字段就是显示排名;
SELECT @ranking := 0 表示对ranking赋初始值0

@ranking := @ranking + 1 表示对ranking加1,语句中会从1开始,每一行往下都自动加1

结果如下:


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。