Как узнать какая запись по счёту

есть таблица (упрощено):

id  status name     id_task
1   1      Название 2
2   1      Название 1
3   1      Название 3
4   1      Название 6
5   1      Название 4
6   1      Название 5

Соответственно всё это получается вот таким запросом:

SELECT * FROM task ORDER BY id_task

Вопрос заключается в том, что бы получить порядковую позицию определённой записи. Ума не приложу как это сделать.

Т.е, допустим, нужно узнать порядковый номер записи с id = 4, ORDER BY всегда id_task, если считать вручную, то получится, что эта запись будет шестой. Как это сделать силами mysql?

Версия сервера: MySQL 5.1.73


Ответы (1 шт):

Автор решения: t0lik

Используйте функцию ROW_NUMBER() (доступно с версии 8). Если нужно считать порядок не по порядку как записи в запрос, то можно использовать расширенный вариант: ROW_NUMBER() OVER (<partition_definition> <order_definition>). Если версия MySQL ниже 8, то можно попробовать эмулировать ее как это предлагается тут

→ Ссылка