Запрос SQL Update из избранных - PullRequest
3 голосов
/ 04 июля 2019

Как обновить этот столбец rank с помощью 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;

Требуемый результат в столбце rank обновление

char_id|char_name|point|w_point|rank|
-------|---------|-----|-------|----|
 100000|Adminn   |   17|     17|   1|
 100008|admin3   |    2|      2|   2|

Спасибо

1 Ответ

1 голос
/ 04 июля 2019

Предполагая, что 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...