sql >> Databáze >  >> RDS >> Mysql

Aktualizace příkazu MYSQL na hodnocení záložních položek podle každého ID

Možná to není nejhezčí způsob, ale můžete snadno udělat něco jako:

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;

Předpokládám, že chcete také prohlášení o aktualizaci, a to by bylo:

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. poddotaz vrátí více než jeden řádek

  2. SqlPlus SP2-0734:Chyba

  3. Můžete použít proměnné MySQL @ session v konektoru C#?

  4. #1055 - Výraz seznamu SELECT není v klauzuli GROUP BY a obsahuje neagregovaný sloupec, což není kompatibilní s sql_mode=only_full_group_by