2011-04-02 27 views
28

我想从MySQL拉一个表的字段名称为蟒蛇,我知道MySQL的:展列,但排除之外的所有字段名

'show columns from project' 

会工作。而且我读过你可以添加'WHERE ...'来限制它到某些领域。但是我找不到如何仅返回列名的例子,而不是Type,Key,Null,Extra信息。

什么是匹配标准拉列所有字段名称和没有其他描述的东西?

+0

相关,如果它的兴趣,我写了一个*描述所有表*在[这个答案](HTTP://计算器的.com /一个/ 38679580)。 – Drew 2016-07-31 00:54:31

回答

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

太棒了!我在两台服务器上测试了phpMyAdmin。但是,每台服务器上只有一个information_schema数据库,并且在保存服务器上的不同数据库中可能有多个表具有相同表名。在这种情况下,它如何知道表列的哪个列表? – ChewyChunks 2011-04-03 18:14:51

+1

查看'table_schema'列 – 2011-04-03 19:47:38

+0

对我来说,它也在工作也没有“AND table_schema ='database_name'” – 2017-11-02 12:10:13

-2
SHOW COLUMNS FROM `table_name` 

这MySQL查询将工作最好的,它会显示一个MySQL表的各个领域。

3

管的答案AWK:

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

虽然看起来更优雅,你并不需要在awk这一点。 MySQL的information_schema.columns表有你需要的信息。

- 描述整个“表名”表赫克在“DATABASE_NAME”数据库

SHOW COLUMNS 
FROM database_name.table_name ; 

- 只显示列名在“DATABASE_NAME”数据库“表名”表。

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

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

select distinct(COLUMN_NAME) from information_schema.COLUMNS where TABLE_NAME='posts'; 
相关问题