web-dev-qa-db-ja.com

MySQLクエリからフィールドタイプを返す方法は?

簡単な質問:MySQLテーブルのフィールドタイプを返すにはどうすればよいですか。 describeまたはshow columnについて知っていますが、その単一のパラメーターを返したいだけです。例えば。:

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

使用できます

SHOW FIELDS
FROM tableName where Field ='nameOfField'

これは結果を次の形式で返します

Field   Type    Null    Key     Default     Extra 
21
Gaurav

これは、information_schemaデータベースから取得できます。

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

私はパーティーに少し遅れていることを知っています。 DATA_TYPEではなくCOLUMN_TYPEを使用したい場合があります。タイプに関する詳細情報(精度など)を提供します。

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

...収量...

decimal(11,2)
5
Jules

次の構文も機能し、describeを使用してtableNameの後にcolumnNameを入力します。

describe tbleName columnName;
1
spelunk1
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));
}
0
SRK