How to return field type from MySQL query?

2019-01-18 10:16发布

Simple question: How can I return the field type of a MySQL table. I know about describe or show column but I just want to return that single parameter. e.g.:

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

5条回答
我只想做你的唯一
2楼-- · 2019-01-18 10:58

You can get this from the information_schema database:

select data_type 
from information_schema.columns 
where table_schema = 'myschema'
and table_name = 'mytable' 
and column_name = 'mycol'
查看更多
一夜七次
3楼-- · 2019-01-18 11:00

You can use

SHOW FIELDS
FROM tableName where Field ='nameOfField'

This will return you result in format of

Field   Type    Null    Key     Default     Extra 
查看更多
Bombasti
4楼-- · 2019-01-18 11:09

The following syntax also works, using describe, enter the columnName after the tableName:

describe tbleName columnName;
查看更多
ら.Afraid
5楼-- · 2019-01-18 11:13

I know I'm a little late to the party. You may want to use COLUMN_TYPE rather than DATA_TYPE. It gives more info (such as precision) about the type.

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

...yields...

decimal(11,2)
查看更多
做个烂人
6楼-- · 2019-01-18 11:23
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));
}
查看更多
登录 后发表回答