如何使用SQL查询更新此列排名?
char_id|char_name|point|w_point|rank|
-------|---------|-----|-------|----|
100000|Adminn | 17| 17| 0|
100008|admin3 | 2| 2| 0|
带有选择
SELECT
char_id,
char_name,
`point`,
`w_point`,
RANK() OVER (ORDER BY `point` DESC) as `rank`
FROM
glro_worlddrop;
我要在排名列中更新的结果
char_id|char_name|point|w_point|rank|
-------|---------|-----|-------|----|
100000|Adminn | 17| 17| 1|
100008|admin3 | 2| 2| 2|
谢谢
答案 0 :(得分:1)
假设char_id
是唯一的,请使用JOIN
:
UPDATE glro_worlddrop w JOIN
(SELECT w.*,
RANK() OVER (ORDER BY `point` DESC) as new_rank
FROM glro_worlddrop w
) ww
USING (char_id)
SET w.rank = ww.new_rank;