【发布时间】:2016-09-19 20:12:02
【问题描述】:
我有一个准备好的声明,应该更新一个字段。
CREATE PROCEDURE `update_table` (in id INT, in col nvarchar(11), in val nvarchar(10))
BEGIN
SET @sql = concat('UPDATE table SET ', col, ' = ', val , ' WHERE id = ', id);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
如果我使用包含连字符的字符串调用该过程(例如 A-B)
CALL update_table(1, 'reg', 'A-B');
我明白了
错误 1054:“字段列表”中的未知列“A”
你能帮忙解决这个问题吗?
编辑:我刚刚发现连字符不是错误的原因。如果我尝试使用“AB”进行更新,则会出现同样的错误。 要更新的字段也是nvarchar,字段长度相同。
【问题讨论】:
-
表格和对过程的实际调用是什么样的?
标签: mysql sql mysql-error-1054