如何从MySQL查询返回字段类型?

问题描述:

简单的问题:如何返回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

您可以使用

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

您可以从INFORMATION_SCHEMA数据库得到这样的:

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

我知道我有点晚了派对。您可能想要使用COLUMN_TYPE而不是DATA_TYPE。它提供了关于类型的更多信息(如精度)。

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

... ...产量

decimal(11,2) 

下面的语法也适用,使用说明,表名后进入COLUMNNAME:

describe tbleName columnName; 

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)); 
}