Поиск ранга или индекса некоторого имени в массиве, возвращаемом запросом
Вопрос
Я запускаю запрос, который возвращает минимум 1000 строк, содержащих имя, сумму и сумму заказа.Мне нужен индекс какого-то имени из этого массива, я не знаю, как это сделать?
Поскольку я использую Ruby, я использую метод arr.index(name)+1, который правильно возвращает индекс.Но мне нужен запрос MySQL, который дает мне только числа для этого конкретного имени.
Решение
В MySQL нет функции ранжирования.Самое близкое, что вы можете получить, это использовать переменную:
SELECT t.*,
@rownum := @rownum + 1 AS rank
FROM TABLE t, (SELECT @rownum := 0) r
Это добавит к вашим выводам столбец с именем Rank, который будет уникальным, увеличивающимся и начинающимся с 1.
Не связан с StackOverflow