如何使用递增计数更新每一行

时间:2015-12-04 00:48:22

标签: mysql

我的MySQL表中有一个varchar字段,我想更新一个名为day的列的每个值,其值递增为1

所以第一行是'day1',第二行是'day2'

任何人都可以在这方面提出建议吗

提前致谢。

1 个答案:

答案 0 :(得分:1)

对于MySQL,您可以使用用户定义的变量来执行此操作。通过在变量名称前加上“@”符号来隐式定义它们。因此,要逐步将列的值设置为“第1天”,“第2天”等,您可以执行以下操作:

BEGIN
    SET @x := 0;
    UPDATE table SET column = CONCAT('day ', @x := @x + 1);
END

由于';',您需要从';'更改默认分隔符。我假设您正在使用命令行MySQL实用程序。你可以像这样输入上面的内容:

mysql> delimiter //
mysql> BEGIN
mysql>   SET @x := 0;
mysql>   UPDATE table SET column = CONCAT('day ', @x := @x + 1);
mysql> END
mysql> //

有关详细信息,请参阅http://dev.mysql.com/doc/refman/5.7/en/stored-programs-defining.html