2012-04-11 18 views
15

में किसी तालिका में मौजूद है, तो क्या डेटाबेस का पता लगाने का कोई तरीका है यदि mysql में किसी तालिका में कॉलम नाम/फ़ील्ड नाम मौजूद है?खोज डेटाबेस यदि कॉलम नाम/फ़ील्ड नाम mySQL

+3

संभव डुप्लिकेट [उन में विशिष्ट स्तंभ नाम के साथ MySQL में सभी तालिकाओं को खोजने के लिए कैसे?] (Http://stackoverflow.com/questions/193780/how-to-find-all-the-tables -in-mysql-with-specific-column-names-in-them-0) – dayuloli

उत्तर

18

INFORMATION_SCHEMA डेटाबेस और इसकी तालिकाओं का उपयोग करें।

जैसे:

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

मजा! :-)

अद्यतन:

टिप्पणी में उल्लेख किया है, यह केवल एक ही मेज खोज करता है, न कि पूरी डेटाबेस (हर तालिका)। उस स्थिति में, कृपया ध्रुवपथक के जवाब का संदर्भ लें।

+2

यह पूरे डेटाबेस की बजाय केवल 1 तालिका खोजेगा। – DhruvPathak

+2

हम्म ठीक है - ठीक है, अगर मैं एक निश्चित कॉलम एक निश्चित तालिका में है तो मैं सवाल समझ गया था! – Stefan

6

आप पूरे डेटाबेस में खोज करने के लिए चाहते हैं तो आपको

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

की कोशिश करनी चाहिए और फिर आप

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

प्रयास करना चाहिए यदि आप विशेष रूप से तालिका में खोज करना चाहते हैं तो आपके पास दो खोज चाहते हैं या अधिक कॉलम मेटोन किए गए नीचे दिए गए हैं।

SELECT DISTINCT TABLE_NAME 
     FROM INFORMATION_SCHEMA.COLUMNS 
     WHERE COLUMN_NAME IN ('columnA','ColumnB') 
      AND TABLE_SCHEMA='YourDatabase'; 
की
संबंधित मुद्दे