2011-04-02 67 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'; 
相關問題