Подскажите есть ли в 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...
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок