Любой способ запустить цикл эквивалент в MySQL?

У меня есть таблица, которая в основном выглядит так:

ID         Name
 1         test1
 2         test2
 n         testn

Я пытаюсь написать запрос, который сначала обновляет 1 строку за раз, затем, если я чувствую себя жадным, обновляет все строки. Я пробовал пользовательские переменные, как это:

SET @x = '1';
SET @name = CONCAT('test', @x);
UPDATE mytable SET Name = @name WHERE ID = @x;

Но этот запрос не проходит. Почему этот запрос не выполняется, и возможно ли улучшить его до чего-то вроде цикла for для обновления каждого поля имени в таблице? Для последнего возможно ли что-то подобное?

<for loop>
SET @x = Name;
SET @name = CONCAT('test', @x);
UPDATE mytable SET Name = @name WHERE ID = @x;
<end loop>

1 ответ

Что-то не так с:

  UPDATE mytable
     SET name = CONCAT('test',id)
/* WHERE id = 1 /* If you want to limit it */
Другие вопросы по тегам