MySQL从查询中获取列名

时间:2014-05-07 11:24:20

标签: mysql sql

我想从查询中查询列名,如下所示:

SHOW COLUMNS FROM 
(SELECT `f1`, `f2`, `g1`, `g3` FROM `f` INNER JOIN `g` ON `g`.`Id` = `f`.`Id`)

结果是

FIELD
f1
f2
g1
g3

当然这个查询是错误的。但有没有办法做到这一点?

1 个答案:

答案 0 :(得分:2)

你为什么需要这个?

如果要在过程或类似过程中使用它,则表示您已在列名称中键入。如果它是动态生成的查询,请使用生成查询的方法来获取列名。

如果要在程序中使用它们,大多数语言都提供了获取结果集列信息的功能。

PHP中的

PDOStatement::getColumnMeta ( int $column )与PDO .NET中的OdbcDataReader.GetSchemaTable()

此解决方案是黑客攻击!(不推荐也未经过测试,只是一个建议!)

根据查询(SELECT .... INTO #temptable)创建一个临时表(可能带有一个永远不会变为true的where子句(WHERE 0=1),然后从INFORMATION_SCHEMA.COLUMNS查询临时表元数据