Mnohokrát potřebujete vypočítat hodnocení v MySQL. Můžete seřadit podle čísla nebo textu, ale nemůžete snadno vypočítat hodnocení v MySQL. Zde je dotaz, který můžete použít. Stačí nahradit název tabulky skóre a názvy sloupců id, skóre.
Vypočítejte hodnocení v MySQL na základě rostoucí hodnoty
Příklad:
CREATE TABLE score (id int, score int); INSERT INTO scores VALUES (1, 35),(2, 10),(3,30),(4,22),(5,20),(6,18),(7,36); Scores: +----+------+ | id | score| +----+------+ | 1 | 35 | | 2 | 10 | | 3 | 30 | | 4 | 22 | | 5 | 20 | | 6 | 18 | | 7 | 36 | +----+------+
Používáme proměnnou hodnocení, jako je tato:
SELECT id,score, @curRank := @curRank + 1 AS rank FROM scores p, (SELECT @curRank := 0) r ORDER BY score;
The
(SELECT @curRank := 0)
část umožňuje inicializaci proměnné bez nutnosti samostatného příkazu SET.
Result: +----+------+------+ | id | score| rank | +----+------+------+ | 2 | 10 | 1 | | 6 | 18 | 2 | | 5 | 20 | 3 | | 4 | 22 | 4 | | 3 | 30 | 5 | | 1 | 35 | 6 | | 7 | 36 | 7 | +----+------+------+ 7 rows in set (0.02 sec)
Vypočítejte hodnocení v MySQL na základě klesající hodnoty
Pokud chcete vypočítat hodnocení v MySQL na základě klesajícího pořadí skóre, přidejte do dotazu klíčové slovo DESC.
SELECT id,score, @curRank := @curRank + 1 AS rank FROM scores p, (SELECT @curRank := 0) r ORDER BY score DESC;
Výsledek: