В 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.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Февраль 13, 2018 г.
Ещё одна шпаргалка по администрированию UNIX серверов. На этот раз рассмотрим несколько полезных команд для создания бекапа базы данных из консоли.
Нам понадобится команда mysqldump, которая позволяет создавать sql скрипт базы или её части.
Создание ...
Читать
Март 19, 2017 г.
Можно действовать разными способами, в зависимости от ситуации. Мне требовалось вытащить данные из проекта на Python/Django/PostgreSQL, чтобы потом экспортировать ...
Читать
Сентябрь 3, 2018 г.
Получить версию бд можно как из консоли, так и средствами языка mySQL.
Версия из консоли UNIX
Тут все просто. Получаем версию из консоли.
[crayon-6aa930df7003c354840459/]
Версия из SQL консоли
Как получить версию mySQL не из unix консоли, а средствами ...
Читать
Август 26, 2015 г.
MySQL позволяет использовать курсоры (CURSORs) в хранимых процедурах. Эта конструкция позволяет организовать сложную обработку данных на стороне сервера ...
Читать