Подскажите есть ли в sql команда вернет порядковый номер нужной строки из всего запроса?
допустим запрос вида SELECT * FROM table ORDER BY id ASC
возвращает
id|name
1 |tenth
2 |first
3 |eighth
...
8 |third
9 |ninth
10|second
хотелось бы получить порядковый номер в выводе(именно номер а не id) допустим строки name == 'third'
есть ли такая возможность? или необходимо делать весь запрос и уже из результата получать порядковый номер?
что-то вроде:
SELECT *** FROM table WHERE name = 'third' ORDER BY id ASC
Для MySQL версии 8.0+ можно воспользоваться оконными функциями:
SELECT row_number() OVER w as id, name
FROM table_name
WINDOW w AS (ORDER BY name)
WHERE name = 'third';
или:
SELECT row_number() OVER (ORDER BY name) as id, name
FROM table_name
WHERE name = 'third';
DB Fiddle...
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты