Это то, что я в настоящее время:Как получить рейтинг баллов в MySQL с помощью LIMIT?
SELECT id, score, username,
CASE
WHEN @prevRank = score THEN @curRank
WHEN @prevRank := score THEN @curRank := @curRank + 1
END AS rank
FROM users u,
SELECT @curRank :=0, @prevRank := NULL) r
ORDER BY score DESC LIMIT 5, 5;
Я хочу, чтобы следующие 5 рядов из 5-я строки, но ранжирования возобновляется 1. Как я могу получить рейтинг, чтобы начать с правильным ранжированием по отношению ко всем строкам ?
Образец данных: http://pastebin.com/i3PsRWdg
Everyone
+----+--------+-----------+------+
| id | scores | username | rank |
+----+--------+-----------+------+
| 24 | 23 | fl | 1 |
| 3 | 9 | test | 2 |
| 6 | 9 | usernine | 2 |
| 5 | 7 | test3 | 3 |
| 11 | 7 | test9 | 3 |
| 26 | 5 | tryagain | 4 |
| 12 | 5 | newUser | 4 |
| 7 | 3 | test6 | 5 |
| 14 | 1 | new3 | 6 |
| 4 | 1 | test2 | 6 |
| 13 | 0 | new2 | NULL |
| 25 | 0 | newu | 6 |
| 23 | 0 | new | 6 |
| 22 | 0 | usernine | 6 |
| 21 | 0 | usernine | 6 |
| 20 | 0 | test | 6 |
| 19 | 0 | usernine | 6 |
| 18 | 0 | usernine | 6 |
| 17 | 0 | usernine | 6 |
| 15 | 0 | usernine | 6 |
| 16 | 0 | test9 | 6 |
+----+--------+-----------+------+
LIMIT 1,5 -> correct
+----+--------+-----------+------+
| id | scores | username | rank |
+----+--------+-----------+------+
| 3 | 9 | test | 1 |
| 6 | 9 | usernine | 1 |
| 5 | 7 | test3 | 2 |
| 11 | 7 | test9 | 2 |
| 26 | 5 | tryagain | 3 |
+----+--------+-----------+------+
LIMIT 5,5 -> incorrect
+----+--------+----------+------+
| id | scores | username | rank |
+----+--------+----------+------+
| 12 | 5 | newUser | 1 |
| 26 | 5 | usernine | 1 |
| 7 | 3 | test6 | 2 |
| 4 | 1 | test2 | 3 |
| 14 | 1 | new3 | 3 |
+----+--------+----------+------+
Should be this:
+----+--------+----------+------+
| id | scores | username | rank |
+----+--------+----------+------+
| 12 | 5 | newUser | 4 |
| 26 | 5 | usernine | 4 |
| 7 | 3 | test6 | 5 |
| 4 | 1 | test2 | 6 |
| 14 | 1 | new3 | 6 |
+----+--------+----------+------+
Попробуйте использовать другую переменную 'init rank' для использования в лимитах и в расчете ранга? Не уверен, что mysql разрешит это – Sebas
Будет очень полезно, если вы включите образец данных и вы хотите получить результат. Мне не ясно, в чем вы хотите –
@JuanCarlosOropeza http://pastebin.com/i3PsRWdg –