Я пытаюсь написать prodecure, который обновляет значение в указанном столбце-имени, где идентификатор пользователя равен данному ID пользователя.Dynamic MySQL Update Statement
_strong_1 - это переменная, которая содержит имя столбца, например: «category_1».
SELECT COLUMN_NAME FROM information_schema.`COLUMNS` C
WHERE table_name = 'subscribers_preferences' AND COLUMN_NAME LIKE _strong_1 INTO @columns;
SET @table = 'subscribers_preferences';
SET @s = CONCAT('UPDATE ',@table,' SET ', @columns = 1);
PREPARE stmt FROM @s;
EXECUTE stmt;
В операторе 'SET @s =' есть ошибка. Я могу заставить его работать с простым оператором SELECT, но UPDATE сложнее.
Заранее спасибо.
Сколько столбцов указано в столбцах '@ columns'? Если у вас более одного, то вам нужно добавить '= 1' в конце каждого столбца. В противном случае у вас есть 'column1, column2 = 1', что является неправильным синтаксисом, оно должно быть' column1 = 1, column2 = 1'. – Taryn
Правильно ли указано '@columns = 1'? – aldux