从表WITHOUT information_schema中仅选择字段名称

时间:2017-09-18 16:53:31

标签: mysql information-schema

我可以执行查询:

SELECT COLUMNS FROM _table-name_ ...或...... SELECT COLUMNS FROM _table-name_

这将给出以下示例结果: +-------+--------+------+-----+---------+ | Field | Type | Null | Key | Default | +-------+--------+------+-----+---------+ | id | char | no | pri | (NULL) | + + + + + + | name | char | no | | (NULL) | +-------+--------+------+-----+---------+

这没关系,但我只想要Field列。我已经看到了可以查询information_schema的解决方案,但不幸的是,我对我有这个选项,所以我正在寻找一个解决方案

SELECT Field FROM (SHOW COLUMNS FROM _table-name_) (但我知道这是不可能的)

此外,这需要在一个查询中实现。

1 个答案:

答案 0 :(得分:1)

MySQL提供的解决方案是使用information_schema。您需要解释为什么这不适合您,以及您尝试实现的目标,如果有人可以提出替代方案。

SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA='myschema' AND TABLE_NAME='mytable'

即使您的默认架构当前是其他架构,您也可以使用限定的表名来查询I_S表(如上所示)。

您始终拥有阅读I_S的权限。如果您有权读取指定模式中的表,则可以从I_S表中读取相应的元数据行。