Нумерация при выборке строк в mySQL

В MSSQL есть функция ROW_NUMBER(), которая нумерует строки выборки. В MySQL такой функции пока нет, но мы можем использовать трюк с переменными для достижения нужного эффекта.

К примеру, вы хотите выбрать название книг и пронумеровать список. Изначально запрос выглядит как то так:

Так как специализированной функции нет, используем в запросе переменную.

Подзапрос (SELECT @count := 0) выполняет роль не только инициализации переменной @count, но так же и временного хранилища.

Если вы попробуете избавиться от подзапроса, например так:

то нужного эффекта достичь не удастся, т.к. переменная будет создаваться для каждой строки независимо и все строки получат номер 1.

Мало букафф? Читайте есчо !

Как получить номер строки в MySql?

Ноябрь 5, 2016 г.

Что делать, если нужно пронумеровать строки прямо в запросе, т.е. во время UPDATE? Полистав руководство MySql 5.5, нужной функции я не нашел. Мне нужно было сохранять позиции пользователей в рейтинге, т.е. пронумеровать пользователей в зависимости ...

Читать

Нумеруем строки в результатах mySQL

Март 6, 2019 г.

Для mySQL 8й версии эта статья не актуальна, т.к. там появилась целая серия замечательных функций, в том числе ROW_NUMBER(). Но пока на значительном количестве хостингов используется 5я версия. Приём прост: требуется объявить переменную и инкрементировать ...

Читать

Как удалить дубликаты из таблицы в MySQL

Сентябрь 24, 2025 г.

Под дублями можно иметь в виду разные условия. Возьмем как пример таблицу имен. В этой таблице есть повторяющиеся значения в поле name. Разберём практический способ удалить такие записи в MySQL с помощью одного SQL-запроса. Пример исходной таблицы ...

Читать

Аналог strpos в mySQL

Февраль 4, 2019 г.

Недавно обнаружил, что в mySQL целых три аналога PHP функции strpos. INSTR(str,substr) - возвращает индекс первого найденного совпадения substr ...

Читать
 

Комментарии к «Нумерация при выборке строк в mySQL»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: