Mysql 从select查询SQL更新
如何使用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
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;