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

现在要对积分进行排名,并计算用户的名次
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
结果如下:

网友评论