mysql - 如何在更新语句中使用 SQL 变量递增

标签 mysql sql sqlyog

我正在尝试在 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/

相关文章:

mysql - MySQL 5.0 中如何重命名数据库名称

MySQL查询日期时间默认值

MySQL 引用表的查询性能

java - 即使创建后表中也没有列

php - 如何释放直接作为数组获取并存储在变量中的 mysql 结果?

mysql - 从 SQL Yog 连接到 MYSQL 服务器

php - 如何在 Laravel 中插入表单数据后重定向到另一个页面?

sql - 返回非限定列名的 SELECT 语句

mysql - 在相关规范的何处记录了 SQL 脚本中的某些注释实际上将作为有效 SQL(由 MySQL)执行?

mysql - 错误号 1045 : While trying to connect to MySql