MySQL - 如何将变量用作列名

时间:2013-11-16 14:18:31

标签: mysql variables dynamic

我想使用注册表作为列名,但注册表是可变的,我不知道它何时发生变化。

示例:

Config (field) = 'Medicine'
FieldContent (another field) = 'Remedy name'

想要做到这一点:

医学(使用Config的内容作为列名)='Remedy Name'(作为注册表)

我尝试了什么?

SET @CONFIG = SELECT CONFIG;

SELECT FIELDCONTENT AS @CONFIG FROM TABLENAME;

MySql说我不能将变量用作列名。还有其他方法吗?

实际的配置内容     医学补救名称

通缉医学
    RemedyName

谢谢!

1 个答案:

答案 0 :(得分:8)

我的想法是使用准备好的声明:

SET @config := (SELECT CONFIG FROM yourtable WHERE id=1);
SET @sql := CONCAT('SELECT FIELDCONTENT AS `', @config, '` FROM TABLENAME');

PREPARE stmt FROM @sql;
EXECUTE stmt;