我有一个表,基本上是这样的:任何可以在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