У меня есть подготовленный оператор, который должен обновить поле.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
Если я вызвать процедуру со строкой, содержащей дефис (например, А-В)
ВЫЗОВ update_table (1, 'р', 'A-B');
я
Ошибка 1054: Неизвестный столбец 'A' в 'списке полей'
Можете ли вы помочь в решении этого вопроса?
Редактировать: Я просто вычислил, что дефис не является причиной ошибки. Если я попытаюсь обновить «AB», появится такая же ошибка. Поле, которое нужно обновить, равно nvarchar с той же длиной поля.
что же таблица и фактический вызов процедуры выглядит? – Flint