Как вернуть тип поля из запроса MySQL? - PullRequest
17 голосов
/ 23 февраля 2011

Простой вопрос: как я могу вернуть тип поля таблицы MySQL.Я знаю о describe или show column, но я просто хочу вернуть этот единственный параметр.например:

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

Ответы [ 5 ]

20 голосов
/ 23 февраля 2011

Вы можете использовать

SHOW FIELDS
FROM tableName where Field ='nameOfField'

Это вернет вам результат в формате

Field   Type    Null    Key     Default     Extra 
17 голосов
/ 23 февраля 2011

Вы можете получить это из базы данных information_schema:

select data_type 
from information_schema.columns 
where table_schema = 'myschema'
and table_name = 'mytable' 
and column_name = 'mycol'
5 голосов
/ 14 июня 2013

Я знаю, что немного опоздал на вечеринку.Вы можете использовать COLUMN_TYPE, а не DATA_TYPE.Он дает больше информации (например, точности) о типе.

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

... yields ...

decimal(11,2)
1 голос
/ 31 января 2014

Следующий синтаксис также работает, используя description, введите columnName после tableName:

describe tbleName columnName;
0 голосов
/ 14 января 2015
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));
}
...