У меня есть таблица, которая в основном выглядит следующим образом:Любой способ запустить эквивалент for for в 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>
Не знаю, почему вы хотите изменить все строки, в то же значение - но вы могли бы рассмотреть хранимую процедуру, которая действительно позволяет петли: http://stackoverflow.com/questions/5125096/for-loop-example-in-mysql – PaulF
Я недостаточно умен, чтобы понять, что не удается. Если вы имеете в виду, что имена не меняются, ну, вы пытаетесь заменить 'test1'' test1'! –
Что вы имеете в виду, когда 'SET @x = Name;'? что такое «Имя»? – Alex