我有一个准备好的语句应该更新一个字段。MySQL准备语句nvarchar
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以及相同的字段长度。
什么表,并给该过程的实际调用是什么样子? – Flint