MySql:显示列但排除除字段名称之外的所有内容

时间:2011-04-02 21:21:56

标签: mysql

我想把表的字段名从MySql拉到python中,我知道

'show columns from project'

会奏效。我已经读过你可以添加'WHERE ...'来限制它只是某些字段。但我找不到如何只返回列名称的示例,而不是Type,Key,Null,Extra信息。

为列提取所有字段名称而没有其他描述内容的匹配条件是什么?

6 个答案:

答案 0 :(得分:69)

SELECT column_name
FROM information_schema.columns
WHERE  table_name = 'your_table'
   AND table_schema = 'database_name'

答案 1 :(得分:14)

虽然它看起来更优雅,但你不需要awk。 MySQL的information_schema.columns表包含您需要的信息。

- 描述'database_name'数据库中'''''''''''''''''''''''''''''''''''''

SHOW COLUMNS
FROM database_name.table_name ;

- 显示'database_name'数据库中'table_name'表的列名称。

SELECT column_name
FROM information_schema.columns
WHERE table_schema = 'database_name'
AND table_name = 'table_name' ;

答案 2 :(得分:3)

将答案传递给awk:

SHOW columns FROM project; | awk '{ print $1 }'

答案 3 :(得分:1)

您可以直接在MySQL information_schema数据库中查询字段名:

select distinct(COLUMN_NAME) from information_schema.COLUMNS where TABLE_NAME='posts';

答案 4 :(得分:0)

如果您的目标是用逗号分隔的列表(不是非常懂Python的人,但这主要是您在PHP和Perl中想要的)GROUP_CONCAT是您的朋友:

SELECT GROUP_CONCAT(column_name) FROM information_schema.columns WHERE table_name='your-table-name-here' GROUP BY TABLE_NAME ORDER BY ORDINAL_POSITION

如果需要用引号引起来,这将为您提供除最外引号之外的所有引号:

SELECT GROUP_CONCAT(column_name SEPARATOR '","') FROM information_schema.columns WHERE table_name='your-table-name-here' GROUP BY TABLE_NAME ORDER BY ORDINAL_POSITION

答案 5 :(得分:-2)

SHOW COLUMNS FROM `table_name`

这个MySQL查询效果最好,它会显示MySQL表的所有字段。