Выбрать счетчик приращений в mysql Вот мой запрос mysql select name from table; Я хочу выбрать счетчик приращений вдоль имени стороны. Как это сделать. поэтому ожидаемый выход будет Jay 1 roy 2 ravi 3 ram 4 Ответ 1 select name, @rownum := @rownum + 1 as row_number from your_table cross join (select @rownum := 0) r order by name Эта часть: cross join (select @rownum := 0) r позволяет вводить переменную без необходимости отдельного запроса. Таким образом, первый запрос также можно разбить на два запроса: set @rownum := 0; select name, @rownum := @rownum + 1 as row_number from your_table order by name; например, когда используется в хранимой процедуре. Ответ 2 В MySQL 8 и выше вы также можете использовать функцию окна ROW_NUMBER(). SELECT name, ROW_NUMBER() OVER () FROM table Результат: Jay 1 roy 2 ravi 3 ram 4 Как показал Юрген d, было бы неплохо поставить ORDER BY для получения детерминированного запроса. ORDER BY может применяться к запросу и счетчику независимо. Итак: SELECT name, ROW_NUMBER() OVER (ORDER BY name DESC) FROM table ORDER BY name даст вам счетчик в порядке убывания. Результат: Jay 4 ram 3 ravi 2 roy 1
Ответ 1 select name, @rownum := @rownum + 1 as row_number from your_table cross join (select @rownum := 0) r order by name Эта часть: cross join (select @rownum := 0) r позволяет вводить переменную без необходимости отдельного запроса. Таким образом, первый запрос также можно разбить на два запроса: set @rownum := 0; select name, @rownum := @rownum + 1 as row_number from your_table order by name; например, когда используется в хранимой процедуре.
Ответ 2 В MySQL 8 и выше вы также можете использовать функцию окна ROW_NUMBER(). SELECT name, ROW_NUMBER() OVER () FROM table Результат: Jay 1 roy 2 ravi 3 ram 4 Как показал Юрген d, было бы неплохо поставить ORDER BY для получения детерминированного запроса. ORDER BY может применяться к запросу и счетчику независимо. Итак: SELECT name, ROW_NUMBER() OVER (ORDER BY name DESC) FROM table ORDER BY name даст вам счетчик в порядке убывания. Результат: Jay 4 ram 3 ravi 2 roy 1