我想把表的字段名从MySql拉到python中,我知道
'show columns from project'
会奏效。我已经读过你可以添加'WHERE ...'来限制它只是某些字段。但我找不到如何只返回列名称的示例,而不是Type,Key,Null,Extra信息。
为列提取所有字段名称而没有其他描述内容的匹配条件是什么?
答案 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表的所有字段。