将订单选择的结果更新为列

时间:2017-06-06 18:31:41

标签: mysql

我有一个包含四列的简单表: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来说相当新,所以如果它是一个简单的解决方案我会道歉。谢谢!

0 个答案:

没有答案