sql >> Database >  >> RDS >> Mysql

MYSQL-update-instructie om de rangorde aan te vullen met elke id

Het is misschien niet de mooiste manier, maar je kunt gemakkelijk iets doen als:

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;

Ik neem aan dat je ook de update-verklaring wilt, en dat zou zijn:

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;



  1. mySQL-groep op naam van lid

  2. Hoe het resultaat van Oracle SQL in een bestand in Windows uit te voeren?

  3. Wat betekent de * asterisk in een mysql-statement?

  4. Oracle-database TNS De lengte van de waarde voor de sleutel 'gegevensbron' overschrijdt de limiet van '128'