更新表,其中列名设置为变量mysql

时间:2012-06-25 13:33:13

标签: mysql variables sql-update

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

UPDATE mytable SET mycolumn = 'a value';

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

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

执行update语句时返回语法错误消息。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

你可以这样做:

set @query = 'UPDATE mytable SET @column = ''a value''';
set @query = replace(@query, '@column', 'col_name');
PREPARE stmt1 FROM @query;
EXECUTE stmt1;