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

в 1:25, , рубрики: mysql, циклы, метки: ,

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

SELECT @i:=@i+1;


А UPDATE в свою очередь проходит каждую запись и заменяет значение по одному.

SELECT @i := 0;
UPDATE `table` SET `name`=CONCAT('Проект ',(SELECT @i := @i+1)) WHERE `type` = 1 ORDER BY `id`;

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

Автор: BupycNet

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js