我有一個準備好的語句應該更新一個字段。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