2011-02-23 79 views
15

簡單的問題:如何返回MySQL表的字段類型。我知道describeshow column但我只想返回該單一參數。例如:如何從MySQL查詢返回字段類型?

SELECT fieldtype(mycol) FROM mytable 
# should return INT or integer for example 
+2

如果有人試圖獲得類似於標題ask的'query'類型,這可能並不簡單。但爲你的查詢創建一個視圖可以讓你回到舊的'DESC table' ;-) – 2015-02-02 15:23:38

回答

18

您可以使用

SHOW FIELDS 
FROM tableName where Field ='nameOfField' 

這將返回導致格式

Field Type Null Key  Default  Extra 
+0

在MYSQL中這個返回基本上與描述一樣... – 2011-02-23 19:33:53

+1

這不會僅返回字段類型。有沒有辦法從結果集中選擇'Type'列?這個解決方案對我來說看起來並不明顯(沒有任何SQL對我來說顯而易見)。 – chadoh 2013-01-24 16:06:40

17

您可以從INFORMATION_SCHEMA數據庫得到這樣的:

select data_type 
from information_schema.columns 
where table_schema = 'myschema' 
and table_name = 'mytable' 
and column_name = 'mycol' 
5

我知道我有點晚了派對。您可能想要使用COLUMN_TYPE而不是DATA_TYPE。它提供了關於類型的更多信息(如精度)。

SELECT COLUMN_TYPE 
FROM information_schema.COLUMNS 
WHERE TABLE_NAME = 'parts' 
AND COLUMN_NAME = 'price' 

... ...產量

decimal(11,2) 
1

下面的語法也適用,使用說明,表名後進入COLUMNNAME:

describe tbleName columnName; 
0
ResultSet rs = Sstatement.executeQuery("SELECT * FROM Table Name"); 

ResultSetMetaData rsMetaData = rs.getMetaData(); 

int numberOfColumns = rsMetaData.getColumnCount(); 
System.out.println("resultSet MetaData column Count=" + numberOfColumns); 

for (int i = 1; i <= numberOfColumns; i++) { 
System.out.println("column number " + i); 

    System.out.println(rsMetaData.getColumnTypeName(i)); 
}