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

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

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

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

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

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

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

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

Как изменить значение AUTO_INCREMENT таблицы в MySQL

Август 3, 2022 г.

Наиболее простой ответ - это использование запроса alter, где вы задаёте новое значение для AUTO_INCREMENT нужной вам таблицы: [crayon-69ce123e26abd142436933/] Вы можете достичь такого же эффекта изменениями соответствующего столбца вашей таблицы: ...

Читать

Аналог strpos в mySQL

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

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

Читать

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

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

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

Читать

Получить разницу дат в секундах в MySQL

Июнь 15, 2018 г.

Для начала выберем функцию с подходящей гранулярностью. DATEDIFF явно не подходит, т.к. даёт разницу в кол-ве целых дней. К счастью, есть аналогичная функция - TIMEDIFF, которая вычисляет разницу с точностью до микросекунд. Результат работы TIMEDIFF ...

Читать
 

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

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



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