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

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

Мне нужно было сохранять позиции пользователей в рейтинге, т.е. пронумеровать пользователей в зависимости от значения их рейтинга.

Используя PHP

Если совсем не думать, то можно загрузить рейтинг в PHP, получить порядковый номер строк, и сохранить эти позиции в базу.

(Структура данных в данном случае абстрактна) это будет выглядеть как серия запросов:

Получится множество запросов под управлением программы на PHP. Если немного подумать, то тоже самое можно сделать без PHP и всего одним запросом.

Без использования PHP

Используем переменную для вычисления позиции при запросе данных

Для каждой строки MySql выполнит расчет позиции, так мы получим нужное значение POSITION (фактически, пронумеруем строки).

Встроим это сразу в UPDATE:

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

Экспорт данных из PostgreSQL в MySQL

Март 19, 2017 г.

Можно действовать разными способами, в зависимости от ситуации. Мне требовалось вытащить данные из проекта на Python/Django/PostgreSQL, чтобы потом экспортировать ...

Читать

Сортировка результатов при использовании DISTINCT в MySql

Май 15, 2016 г.

Есть один феномен, связанный с внутренней сортировкой в mySQL, которая служит для реализации функционала DISTINCT (выбора уникальных значений). Если вы ...

Читать

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

Июнь 15, 2018 г.

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

Читать

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

Апрель 24, 2023 г.

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

Читать
 

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

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



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

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

  1. Владимир:

    Если бы автор попробовал сам, то обнаружил бы, что на SQL не работает.

    • Автор, уверяю, не просто пробовал, а использовал данный подход. Скорее всего, у вас что то не получилось в конкретной реализации.