Mysql 从select查询SQL更新

Mysql 从select查询SQL更新,mysql,sql,mariadb,Mysql,Sql,Mariadb,如何使用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() O

如何使用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\u id是唯一的,请使用JOIN:


谢谢你的回答是的,字符id仍然是唯一的fail@YoonJunho . . . 你说仍然失败是什么意思?1064-你的SQL语法有错误;检查与您的MariaDB服务器版本对应的手册,以了解正确的语法,在第3行使用MariaDB 10.3.-15在xamppsorry下,我刚刚醒来,感谢男士在w之后缺少逗号的修订。*工作很好!!
char_id|char_name|point|w_point|rank|
-------|---------|-----|-------|----|
 100000|Adminn   |   17|     17|   1|
 100008|admin3   |    2|      2|   2|
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;