To będzie obsługiwać rangi, które mają ten sam wynik.
SELECT d.*, c.ranks
FROM
(
SELECT Score, @rank:[email protected]+1 Ranks
FROM
(
SELECT DISTINCT Score
FROM tableName a
ORDER BY score DESC
) t, (SELECT @rank:= 0) r
) c
INNER JOIN tableName d
ON c.score = d.score
// WHERE d.username = 'Helen'
na przykład
KEY username password score Ranks
1 Anna 123 5 3
2 Bobby 345 6 2
3 Helen 678 6 2
4 Jon 567 2 4
5 Arthur ddd 8 1
dla lepszej wydajności dodaj INDEX
w kolumnie Score
,
ALTER TABLE tableName ADD INDEX (Score)