Cela gérera les rangs qui ont le même score.
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'
par exemple
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
pour de meilleures performances, ajoutez un INDEX
sur la colonne Score
,
ALTER TABLE tableName ADD INDEX (Score)