Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MYSQL-Update-Anweisung zum Auffüllen des Rankings nach jeder ID

Es ist vielleicht nicht der schönste Weg, aber Sie können leicht so etwas tun:

set @rank = 0;
set @prev = 0;

select id, score, IF (id = @prev, @rank := @rank + 1, @rank := 1), @prev := id
from scores
order by id, score;

Ich vermute, Sie wollen auch die Update-Anweisung, und das wäre:

set @rank = 0;
set @prev = 0;

update scores
set rank = IF(id = @prev, @rank := @rank + 1, @rank := 1),
id = (@prev := id)
order by id, score;