Поиск ранга или индекса некоторого имени в массиве, возвращаемом запросом

StackOverflow https://stackoverflow.com/questions/1905630

  •  19-09-2019
  •  | 
  •  

Вопрос

Я запускаю запрос, который возвращает минимум 1000 строк, содержащих имя, сумму и сумму заказа.Мне нужен индекс какого-то имени из этого массива, я не знаю, как это сделать?

Поскольку я использую Ruby, я использую метод arr.index(name)+1, который правильно возвращает индекс.Но мне нужен запрос MySQL, который дает мне только числа для этого конкретного имени.

Это было полезно?

Решение

В MySQL нет функции ранжирования.Самое близкое, что вы можете получить, это использовать переменную:

SELECT t.*, 
       @rownum := @rownum + 1 AS rank
  FROM TABLE t, (SELECT @rownum := 0) r

Это добавит к вашим выводам столбец с именем Rank, который будет уникальным, увеличивающимся и начинающимся с 1.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top