Mysql
 sql >> база данни >  >> RDS >> Mysql

Изявление за актуализиране на MYSQL за запълване на класирането по всеки идентификатор

Може да не е най-красивият начин, но лесно можете да направите нещо като:

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;

Предполагам, че искате и изявлението за актуализация и това би било:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Няколко предупреждения [очаква параметър]

  2. извличане на данни от mysql и изпращане на имейл

  3. Как да изпълним множество mysql заявки заедно в PHP?

  4. Python MySQL избягва специални символи

  5. Odd IntegrityError на MySQL:#1452