В MSSQL есть функция ROW_NUMBER(), которая нумерует строки выборки. В MySQL такой функции пока нет, но мы можем использовать трюк с переменными для достижения нужного эффекта.
К примеру, вы хотите выбрать название книг и пронумеровать список. Изначально запрос выглядит как то так:
|
|
SELECT book_title FROM books; |
Так как специализированной функции нет, используем в запросе переменную.
|
|
SELECT @count := @count + 1, book_title FROM books, (SELECT @count := 0) r; |
Подзапрос (SELECT @count := 0) выполняет роль не только инициализации переменной @count, но так же и временного хранилища.
Если вы попробуете избавиться от подзапроса, например так:
|
|
SELECT @count := IFNULL(@count, 0) + 1, book_title FROM books; |
то нужного эффекта достичь не удастся, т.к. переменная будет создаваться для каждой строки независимо и все строки получат номер 1.
MySQL
Данная запись опубликована в 24.04.2023 12:48 и размещена в рубрике SQL.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Февраль 6, 2018 г.
Как развернуть дамп базы данных mySQL, созданный ранее?
Дамп представляет из себя mysql скрипт, в котором последовательно создаются таблицы (CREATE TABLE ...) и, возможно, другие объекты и производиться их наполнение (INSERT INTO ...). Нужно лишь отправить ...
Читать
Ноябрь 5, 2016 г.
Что делать, если нужно пронумеровать строки прямо в запросе, т.е. во время UPDATE? Полистав руководство MySql 5.5, нужной функции я не нашел.
Мне нужно было сохранять позиции пользователей в рейтинге, т.е. пронумеровать пользователей в зависимости ...
Читать
Сентябрь 3, 2018 г.
Получить версию бд можно как из консоли, так и средствами языка mySQL.
Версия из консоли UNIX
Тут все просто. Получаем версию из консоли.
[crayon-6aa7a4340b210687220377/]
Версия из SQL консоли
Как получить версию mySQL не из unix консоли, а средствами ...
Читать
Февраль 16, 2023 г.
Появляется, если поле типа datetime уже содержит подобные нулевые значения при попытке изменить как тип поля (через alter table), так и сами значения в таблице.
Вероятно ошибка возникает, если вы импортировали данные в вашу базу. Скорее всего из-за ...
Читать