是否可以在MYSQL中动态选择列名,其中列名是N个已知值中的1?

Hel*_*blo 5 mysql

我担心答案会是直接的“不”,但我想知道是否可以在 MySQL 中执行如下操作:

SELECT (title||label||name) FROM table

即选择单个列,可以称为titlelabelname, from table

原因是:查询将在table已知的情况下动态生成,但(由于我无法控制的原因)其他表中没有一致的命名约定。

kma*_*mas 5

它确实有效。

SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='YOUR_TABLE_NAME' AND COLUMN_NAME IN ('name', 'label', 'title') into @colname;
SET @table = 'YOUR_TABLE_NAME';
SET @query = CONCAT('SELECT ',@colname,' FROM ', @table);

PREPARE stmt FROM @query;
EXECUTE stmt;
Run Code Online (Sandbox Code Playgroud)

这里的灵感:将字符串动态转换为列名。MySQL