MySQL - 如何将变量用作列名

use*_*461 5 mysql variables dynamic

我想使用注册表作为列名,但注册表是可变的,我不知道它何时更改.

例:

Config (field) = 'Medicine'
FieldContent (another field) = 'Remedy name'
Run Code Online (Sandbox Code Playgroud)

想做这个:

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

我试过了什么?

SET @CONFIG = SELECT CONFIG;

SELECT FIELDCONTENT AS @CONFIG FROM TABLENAME;
Run Code Online (Sandbox Code Playgroud)

MySql说我不能使用变量作为列名.还有其他方法吗?

实际的Config Content Medicine RemedyName

通缉医学
补救名称

谢谢!

fth*_*lla 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;
Run Code Online (Sandbox Code Playgroud)