现在有一个 scores 积分表,记录用户的积分
![](https://img.haomeiwen.com/i4998968/829eb5f964ef424e.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
结果如下:
![](https://img.haomeiwen.com/i4998968/defda77b0b9aeece.png)
网友评论