2011-04-02 15 views
28

dışında her şeyi dışlamak ama, benMySql: göster sütunları Python içine MySql bir tablonun alan adlarını çekmek istiyorum alan adları

'show columns from project' 

çalışacağını biliyoruz. Ve sadece belirli alanlarla kısıtlamak için 'WHERE ...' ekleyebileceğinizi okudum. Ancak, yalnızca sütunların isimlerini nasıl döndüreceğine dair bir örnek bulamıyorum, Tip, Anahtar, Boş, Ekstra bilgiler değil.

Sütunlar için tüm alan adlarını ve diğer açıklama öğelerinin hiçbirini alma eşleşen ölçütler nedir?

+0

İlgili, ben bir * Tüm Tabloları açıklayın yazdı * [Bu cevap] (http com/a/38.679.580). – Drew

cevap

60
SELECT column_name 
FROM information_schema.columns 
WHERE table_name = 'your_table' 
    AND table_schema = 'database_name' 
+0

Harika! PhpMyAdmin üzerinde iki sunucu üzerinde test yaptım. Ancak, her sunucuda yalnızca bir information_schema veritabanı ve aynı tablo adına sahip olan kayıt sunucusunda farklı veritabanlarındaki potansiyel olarak birden çok tablo var. Bu durumda hangi tablo sütunlarının alınacağını nasıl biliyor? – ChewyChunks

+1

"table_schema" sütununa bakın –

+0

Bana göre "AND table_schema = 'database_name'" olmadan da çalışıyor –

-2
SHOW COLUMNS FROM `table_name` 

Bu MySQL sorgusu iyi çalışacak, bir MySQL tablonun tüm alanları gösterecektir.

3

Boru awk cevabı:

SHOW columns FROM project; | awk '{ print $1 }' 
13

daha şık görünüyor olsa da, bunun için awk gerekmez. MySQL'in information_schema.columns tablosu ihtiyacınız olan bilgiye sahiptir.

- GÖSTERİSİ 'database_name' veritabanındaki 'tablo_ismi' tablo için SADECE SÜTUN İSİMLERİ - 'database_name' veritabanına

SHOW COLUMNS 
FROM database_name.table_name ; 

yılında TÜM 'tablo_ismi' tablosunun OF halt DESCRIBE.

SELECT column_name 
FROM information_schema.columns 
WHERE table_schema = 'database_name' 
AND table_name = 'table_name' ; 
1

Sen FIELDNAMES doğrudan MySQL'in information_schema veritabanını sorgulayabilir: // stackoverflow: Bu ilgi ise

select distinct(COLUMN_NAME) from information_schema.COLUMNS where TABLE_NAME='posts';