我有一个包含四列的简单表:id | name | score | rank
,如下所示:
id | name | score | rank
---|------|-------|-----
1 | Bob | 99 | -
2 | Jim | 88 | -
3 | Rex | 103 | -
4 | Zus | 55 | -
我想按score
(降序)对这些行进行排序,并将每个行的rank
列中的适当排名存储起来。
目前,我正在使用以下代码创建一个具有排名的别名列:
SET @rank:=0;
SELECT *, @rank:=@rank+1 AS rank_test FROM test ORDER BY score DESC
返回:
id | name | score | rank | rank_test
---|------|-------|------|----------
3 | Rex | 103 | - | 1
1 | Bob | 99 | - | 2
2 | Jim | 88 | - | 3
4 | Zus | 55 | - | 4
如何将rank_test
别名的结果传输到rank
列?
我已经研究了很多答案但似乎没有任何工作要做。对SQL来说相当新,所以如果它是一个简单的解决方案我会道歉。谢谢!