mysql 的高级排行榜,并列的名次顺延。
ranking | age |
1 | 13 |
1 | 13 |
3 | 12 |
4 | 11 |
sql如下,一个sql框,自己填入自己的表和逻辑
SELECT
ranking.*,
@curRank := @curRank +1 AS p,
@preRank := IF(@preAge= ranking.age,@preRank,@curRank) AS ranking,
@preAge := ranking.age AS prai
FROM
(SELECT * FROM person ORDER BY age DESC) ranking,
(SELECT @curRank :=0 ,@preAge= NULL , @preRank := 1 ) r
初始化 @preRank := 1 ,不要赋值为0。