Похожие / похожие вопросы: MySQL - Получить номер строки при выборе , Выбрать только частичный результат, но получить общее количество строк
У меня сейчас есть это таблица:
+----+--------------------+---------------+--------+
| id | accountId | competitionId | rating |
+----+--------------------+---------------+--------+
| 1 | theidoftheaccount1 | 1 | 100 |
| 2 | theidoftheaccount2 | 3 | 90 |
| 3 | theidoftheaccount3 | 1 | 80 |
| 4 | theidoftheaccount4 | 1 | 50 |
+----+--------------------+---------------+--------+
Я хочу получить строку с accountId='theidoftheaccount3'
, поэтому я вызываю обычное SQL выражение SELECT * FROM competitors WHERE competitionId='someotherid1' AND accountId='theidoftheaccount3 ' ORDER BY rating DESC
и все хорошо.
Проблема : Теперь я хочу узнать номер строки, которую я получил, но только из всех других строк, которые имеют competitionId='someotherid1'
. Этот номер строки будет «рангом» участника из всех других участников того же соревнования.
Так что в конце дня я вернусь:
+----+--------------------+---------------+--------+-----------+
| id | accountId | competitionId | rating | rowNumber |
+----+--------------------+---------------+--------+-----------+
| 3 | theidoftheaccount3 | 1 | 80 | 2 |
+----+--------------------+---------------+--------+-----------+
Как это можно сделать?