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

标签 mysql

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

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

即从 table 中选择一个列,可以称为 titlelabelname

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

最佳答案

它确实有效。

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;

灵感在这里:Dynamic conversion of string into column name. MySQL

关于mysql - 是否可以在 MYSQL 中动态选择列名,其中列名是 N 个已知值中的第一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17572848/

相关文章:

PHPExcel - Excel 报告生成期间的数据填充不正确

php - 难以从 edmunds api 获取样式 ID

php - 重复文章出现在网站上

mysql - 如果多个表中不存在该行,则插入该行

mysql - 将方法名称绑定(bind)到 mysql where 子句?

PHP 通过 PDO 释放内存

mysql - 不要在我的应用程序中显示 mysql 错误

php pdo 代码附加 no 和日期

c# - SSIS可以生成PDF文件来导出数据吗?

MySQL - 在 WHERE 子句中使用 COUNT(*)