Я пытаюсь сделать запрос, и я уже искал ответ на stackof, но не нашел подходящего для моих потребностей. У меня есть таблица с именем player, в которой есть два столбца, «ник» и «оценка». Я использую этот запрос, чтобы получить лучшие 5 игроков:Выберите ранг конкретного запроса sql игрока
SELECT nickname, score
FROM player
ORDER BY score DESC LIMIT 5;
и я получил это как ответ:
nickname - score:
zod - 30
ciao - 20
jiji - 20
mayina - 20
jon - 0.
Теперь я хотел бы иметь ранг одного игрока, давайте скажем, «джиджи» и получить 3 в результате, потому что это третий результат в списке.
Я пробовал много запросов, как
SELECT COUNT(*) AS rank
FROM player
WHERE score >= (SELECT score FROM player WHERE nickname = 'jiji')
, но они всегда возвращаются 4 для «Дзидзи» или «чао», который является ранг последнего игрока, который получает 20 очков, как в этой таблице.
Как я могу получить 3 для «jiji», вместо этого? Большое спасибо.
Будьте осторожны при пометке ваших вопросов. Это явно mysql, а не sql-сервер. Это НЕ то же самое. –
Вам нужно использовать аналитическую функцию для решения проблемы ур – Teja
смотрите здесь: http://stackoverflow.com/questions/2520357/mysql-get-row-number-on-select – Galz