我想使用注册表作为列名,但注册表是可变的,我不知道它何时发生变化。
示例:
Config (field) = 'Medicine'
FieldContent (another field) = 'Remedy name'
想要做到这一点:
医学(使用Config的内容作为列名)='Remedy Name'(作为注册表)
我尝试了什么?
SET @CONFIG = SELECT CONFIG;
SELECT FIELDCONTENT AS @CONFIG FROM TABLENAME;
MySql说我不能将变量用作列名。还有其他方法吗?
实际的配置内容 医学补救名称
通缉医学
RemedyName
谢谢!
答案 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;