Упорядоченное присвоение ID каждой строке - MySQL
Формулировка задачи:
Привет всем.
Не могу как следует сформулировать вопрос, от незнания всей терминологии. Прошу прощения. Опишу, что нужно сделать..
Есть БД с записями. Записи имеют свой уникальный id. ID пронумерованы, но есть "пробелы" между нумерацией. То есть, есть id с 1 по 1000, потом чисто, потом с 1200 по 1500, потом снова чисто, потом с 1600 по 2000 и тд.
Можно ли "убрать" эти пробелы? И как это можно сделать?
То есть, чтобы все id шли по порядку, без пропусков...
Решение задачи: «Упорядоченное присвоение ID каждой строке»
textual
Листинг программы
SET @n = 0; UPDATE num SET num = @n := @n + 1 ORDER BY num;
Объяснение кода листинга программы
- Создается переменная
@n
типа integer и инициализируется значением 0; - Производится обновление таблицы
num
с помощью оператора UPDATE; - В качестве условия для обновления используется выражение
num = @n := @n + 1
; - Обновление происходит для каждой строки таблицы
num
в порядке, определенном оператором ORDER BY; - Значение переменной
@n
увеличивается на 1 после каждого обновления; - Значение переменной
@n
используется для присвоения уникального ID каждой строке таблицыnum
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д