Как вернуть тип поля из запроса MySQL?

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

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

person Matt Bannert    schedule 23.02.2011    source источник
comment
Если кто-то пытается получить типы query, как в заголовке, это может быть непросто. Но создание представления для вашего запроса возвращает вам старый добрый DESC table ;-)   -  person Julien Palard    schedule 02.02.2015


Ответы (4)


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

SHOW FIELDS
FROM tableName where Field ='nameOfField'

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

Field   Type    Null    Key     Default     Extra 
person Gaurav    schedule 23.02.2011
comment
Это не возвращает только тип поля. Есть ли способ просто ВЫБРАТЬ столбец Type из набора результатов? Решение не кажется мне очевидным (мне ничего с SQL не кажется очевидным). - person chadoh; 24.01.2013

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

select data_type 
from information_schema.columns 
where table_schema = 'myschema'
and table_name = 'mytable' 
and column_name = 'mycol'
person Ike Walker    schedule 23.02.2011

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

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

... дает...

decimal(11,2)
person Jules    schedule 14.06.2013
comment
И: TABLE_SCHEMA = 'xxxx' Если на вашем сервере более одной базы данных. - person Tim Bray; 03.06.2019

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

describe tbleName columnName;
person spelunk1    schedule 31.01.2014