2011-02-23 25 views
15

Basit soru: Bir MySQL tablonun alan türünü nasıl döndürebilirim? describe veya show column hakkında biliyorum, ancak sadece bu tek parametreyi döndürmek istiyorum. örneğin:Alan türü MySQL sorgusundan nasıl geri dönülür?

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

birisi çalışıyorsa başlık sormak gibi bir 'sorgu' türlerini almak için, bu basit olmayabilir. Ancak, sorgunuz için bir görünüm oluştururken eski 'DESC tablosu'nu geri getirebilirsiniz ;-) –

cevap

18

Sen

SHOW FIELDS 
FROM tableName where Field ='nameOfField' 

kullanabilirsiniz Bu formatında neden dönecektir

Field Type Null Key  Default  Extra 
+0

MYSQL'de bu, temel olarak tanımlandığı gibi döner ... –

+1

Bu, yalnızca alan türünü döndürmez. Sonuç kümesinden sadece 'Tür' sütununu SEÇMEK için bir yol var mı? Çözüm bana açık görünmüyor (SQL ile hiçbir şey bana açık değil). – chadoh

17

Sen information_schema veritabanından bu alabilirsiniz:

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

Biliyorum biraz geç kaldım. Parti. DATA_TYPE yerine COLUMN_TYPE kullanmak isteyebilirsiniz. Bu tür hakkında daha fazla bilgi (hassas gibi) verir.

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

... verimleri ...

decimal(11,2) 
1

da tabloismi sonra SütunAdı girin tarif kullanarak çalışmasına aşağıdaki sözdizimi:

describe tbleName columnName; 
0
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)); 
} 
İlgili konular