Mysql 增量更新列中的所有名称

Mysql 增量更新列中的所有名称,mysql,sql,Mysql,Sql,我有一个专栏“客户”。我想更新所有行的名称,例如“Name1”、“Name2”、,“名字” 如果我这样做 UPDATE Customers SET ContactName='Name1'; 它将每行设置为“Name1”。我怎样才能做到这一点+每个名称对应1。我不太精通SQL,但您应该能够使用WHILE循环来模拟for循环。一般来说 DECLARE @cnt INT = 0; WHILE @cnt < cnt_total BEGIN {...statements...} SE

我有一个专栏“客户”。我想更新所有行的名称,例如“Name1”、“Name2”、,“名字”

如果我这样做

UPDATE Customers
SET ContactName='Name1';

它将每行设置为“Name1”。我怎样才能做到这一点+每个名称对应1。

我不太精通SQL,但您应该能够使用WHILE循环来模拟for循环。一般来说

DECLARE @cnt INT = 0;

WHILE @cnt < cnt_total
BEGIN
   {...statements...}
   SET @cnt = @cnt + 1;
END;
DECLARE@cnt INT=0;
而@cnt
其中,“cnt_total”是您希望执行的循环总数,“statements”是您希望在每次迭代期间执行的操作。。应该能够适应你的问题

set @i = 0;
update Customer 
set ContactName=concat('Name', @i := @i+1)
试试这个

update Customers,(SELECT @n := 0) m set ContactName =concat('Name',@n := @n + 1);

通过使用where子句,声明和WHILE仅在存储过程中使用。另外,如果声明局部变量,则不使用
@
。我怀疑您是在回答Microsoft SQL Server,而不是MySQL。