Как стать автором
Обновить

Простейший цикл на MySQL

Время на прочтение1 мин
Количество просмотров38K
Сегодня, работая над сайтом, мне надо было отделить основной каталог от дополнительного. А в дополнительном каталоге надо было пронумеровать нужные записи в виде «Проект 1», «Проект 2». И тут какой то неведомый зверь не позволил мне сделать это по-быстрому на каком нибудь распространенном языке программирования. Мне захотелось попробовать, а можно ли сделать это используя лишь только средства MySQL?
Насколько я помню, в MySQL есть переменные, например @a. Но поиск в сети, как сделать цикл в MySQL, ничего мне не дал.
Тогда я поразмыслил, ведь мы можем написать
SELECT @i:=@i+1;

А UPDATE в свою очередь проходит каждую запись и заменяет значение по одному.
SELECT @i := 0;
UPDATE `table` SET `name`=CONCAT('Проект ', @i := @i+1) WHERE `type` = 1 ORDER BY `id`;

В итоге мы переименовали записи с типом 1 по порядку следования их ID.
PS: CONCAT объединяет строки.
Теги:
Хабы:
-3
Комментарии11

Публикации

Изменить настройки темы

Истории

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн