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

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

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

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

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

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

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

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

Как узнать версию MySQL?

Сентябрь 3, 2018 г.

Получить версию бд можно как из консоли, так и средствами языка mySQL. Версия из консоли UNIX Тут все просто. Получаем версию из консоли. [crayon-6a99ef00aceb5474217120/] Версия из SQL консоли Как получить версию mySQL не из unix консоли, а средствами ...

Читать

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

Март 6, 2019 г.

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

Читать

Группировка строковых значений в выборке из базы данных

Сентябрь 30, 2018 г.

Группировка по полю, содержащему число, используется значительно чаще, чем группировка по текстовому полю. Я думаю, вы использовали функции вроде AVG(), ...

Читать

Считаем полное число строк в запросе MySQL, ограниченного LIMIT

Ноябрь 2, 2012 г.

О полезном операторе - SQL_CALC_FOUND_ROWS. Это конструкция просто незаменима для организации постраничного вывода каких либо данных. Все время забываю синтаксис, приходится каждый раз искать. Решил записать в блоге, чтобы уж не терять :). Во всех ...

Читать
 

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

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



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