我正在尝试在 SQL 中使用 @count
变量来增加一列。我已经尝试了多次尝试,我将在下面列出所有结果:
错误代码:1064
您的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册,了解在 ... 附近使用的正确语法
首先是:
SET @count = 65;
UPDATE table t
SET t.Revision = CHAR(@count)
, @count = @count + 1
WHERE t.hidden = 0;
我正在尝试递增当前的每一行,以作为其有效的概念证明。
其次是:
DECLARE t CURSOR FOR
SELECT * FROM table
WHERE t.hidden = 0;
OPEN t;
FETCH NEXT FROM t;
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE table t2 SET t2.Revision = 'D' WHERE t2.id1 = t.id1 AND t2.id2 = t.id2;
END;
END
CLOSE t;
DEALLOCATE t;
再一次,我只是想看看我是否可以在实现递增之前使用 while 循环设置一个标准变量,作为它有效的概念证明。
我不确定为什么这些尝试都失败了,但我们将不胜感激。
最佳答案
这是您的第一个示例应该如何工作(在某个循环内):
首先你设置你的计数值,然后你更新
SET @count = 65;
UPDATE CUSTOMER t
SET t.LName = CONVERT(@count, char)
where t.FName = 'a';
...然后增加计数并再次更新...
set @count = @count + 1;
UPDATE CUSTOMER t
SET t.LName = CONVERT(@count, char)
where t.FName = 'a';
但这应该在一个过程中。
这是 DEMO .我只是一个小例子,希望对您有所帮助。 干杯!
关于mysql - 如何在更新语句中使用 SQL 变量递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58647109/