これは、同じスコアを持つランクを処理します。
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'
たとえば
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
パフォーマンスを向上させるには、INDEX
を追加します 列Score
、
ALTER TABLE tableName ADD INDEX (Score)