2012-04-11 31 views
15

'da bir tabloda bulunuyorsa, veritabanını araştırın. Eğer mysql içindeki bir tabloda bir sütun adı/alan adı mevcutsa, veritabanında arama yapmanın bir yolu var mı? INFORMATION_SCHEMA veritabanı ve tablolarını kullanmak içinSütun adı/alan adı mySQL

+3

olası yinelenen [onlara özgü sütun adları ile MySQL tüm tabloları nasıl bulunur?] (Http://stackoverflow.com/questions/193780/how-to-find-all-the-tables -in-mysql-ile-özel-sütun-adları-in) – dayuloli

cevap

18

.

örn:

SELECT * 
FROM information_schema.columns 
WHERE table_schema = 'MY_DATABASE' 
     AND column_name IN ('MY_COLUMN_NAME'); 
6
SHOW COLUMNS FROM tablename LIKE 'columnname' 

eğlenin! :-)

GÜNCELLEME: Açıklamalarda belirtildiği gibi

, bu yalnızca bir tablo arar tamamını değil veritabanı (her tablo). Bu durumda, lütfen DhruvPathak'ın cevabına bakınız.

+2

Bu sadece tüm veritabanı yerine 1 tablo arar. – DhruvPathak

+2

hmm tamam - belli bir tablonun belirli bir tabloda olup olmadığını anlamak istedim! – Stefan

6

Eğer tüm veritabanında arama yapmak istiyorsanız o zaman

SELECT * 
FROM information_schema.COLUMNS 
WHERE 
    TABLE_SCHEMA = 'db_name' 
AND COLUMN_NAME = 'column_name' 

denemelisiniz Ve özellikle tabloda aramak isterseniz o zaman iki arama yapmak istiyorsanız

SELECT * 
FROM information_schema.COLUMNS 
WHERE 
    TABLE_SCHEMA = 'db_name' 
AND TABLE_NAME = 'table_name' 
AND COLUMN_NAME = 'column_name' 
1

denemelisiniz Aşağıda belirtilen veya daha fazla sütun kullanımı metioned.

SELECT DISTINCT TABLE_NAME 
     FROM INFORMATION_SCHEMA.COLUMNS 
     WHERE COLUMN_NAME IN ('columnA','ColumnB') 
      AND TABLE_SCHEMA='YourDatabase'; 
ait