我有一個表,基本上是這樣的:任何可以在MySQL中運行for循環的方法嗎?
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循環在表中更新每個name字段?對於後者,是這樣的可能嗎?
<for loop>
SET @x = Name;
SET @name = CONCAT('test', @x);
UPDATE mytable SET Name = @name WHERE ID = @x;
<end loop>
不知道爲什麼你想要的所有行更改爲相同的值 - 但你可以考慮存儲的過程,它不會允許循環:http://stackoverflow.com /問題/ 5125096/for循環,例如,在MySQL的 – PaulF
我不是足夠聰明,找出失敗。如果你的意思是這些名字沒有改變,那麼你正試圖用'test1'來替換'test1'! –
你是什麼意思時'SET @x =名稱;'? 「Name」是什麼? – Alex