2

我正在创建一个应该更新表的 mysql 语句,但不是以正常方式将列名设置为等于某个值,而是决定使其动态化,例如,而不是:

UPDATE mytable SET mycolumn = 'a value';

我使用一个变量。在这种情况下:

SET @column = 'mycolumn';
UPDATE mytable SET @column = 'a value';

当我执行更新语句时,这会返回一条语法错误消息。有没有办法做到这一点?

4

1 回答 1

1

你可以这样做:

set @query = 'UPDATE mytable SET @column = ''a value''';
set @query = replace(@query, '@column', 'col_name');
PREPARE stmt1 FROM @query;
EXECUTE stmt1;
于 2012-06-25T13:53:55.483 回答