Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Oświadczenie o aktualizacji MYSQL w celu uzupełnienia rankingu według każdego identyfikatora

Może nie jest to najładniejszy sposób, ale możesz łatwo zrobić coś takiego:

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;

Przypuszczam, że chcesz również oświadczenie o aktualizacji, a to byłoby:

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. MySQL - Wybieranie ile dni ma pole

  2. Jak obsługiwać strefę czasową MySQL w skrypcie?

  3. Dodaj wiele wierszy w jednym wierszu z jednej tabeli

  4. Niezdefiniowany indeks:nazwa użytkownika w C:\wamp\www\Website\storeadmin\admin_login.php..i to samo dla hasła

  5. Zaktualizuj wiele wierszy w jednym zapytaniu MySQL