Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में दो खास कॉलम वाली सभी टेबल कैसे खोजें?

INFORMATION_SCHEMA.COLUMNS से दो कॉलम वाली टेबल ढूंढना

डेटाबेस में वे सभी टेबल खोजने जिनमें दो खास कॉलम (जैसे 'Id' और 'Name') दोनों मौजूद हों, INFORMATION_SCHEMA.COLUMNS के साथ GROUP BY और HAVING का उपयोग करें।

क्वेरी: Id और Name दोनों कॉलम वाली टेबल्स

SELECT TABLE_NAME AS TableNameFromWebDatabase 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE COLUMN_NAME IN ('Id', 'Name') 
GROUP BY TABLE_NAME 
HAVING COUNT(*) = 2;

आउटपुट उदाहरण

+--------------------------+
| TableNameFromWebDatabase |
+--------------------------+
| student                  |
| distinctdemo             |
| secondtable              |
| groupconcatenatedemo     |
| indemo                   |
| ifnulldemo               |
| demotable211             |
| demotable212             |
| demotable223             |
| demotable233             |
| demotable251             |
| demotable255             |
+--------------------------+

कैसे काम करता है

  1. WHERE COLUMN_NAME IN ('Id', 'Name') - केवल ये दो कॉलम वाली रो चुनता है
  2. GROUP BY TABLE_NAME - टेबल के अनुसार ग्रुप करता है
  3. HAVING COUNT(*) = 2 - केवल वे टेबल जिनमें दोनों कॉलम हैं (काउंट = 2)

वेरिफिकेशन: एक टेबल का डिस्क्रिप्शन

DESC demotable233;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| Id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| Name  | varchar(20) | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+

महत्वपूर्ण नोट

  • COUNT(*) = 2 मानता है कि दोनों कॉलम नाम अलग हैं
  • अगर एक ही नाम के दो कॉलम हों (असंभव), तो गलत परिणाम देगा
  • अधिक सटीक: HAVING COUNT(DISTINCT COLUMN_NAME) = 2
  • स्कीमा फ़िल्टर जोड़ें: AND TABLE_SCHEMA = 'your_db'

तीन या अधिक कॉलम के लिए

SELECT TABLE_NAME 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE COLUMN_NAME IN ('Id', 'Name', 'Email') 
AND TABLE_SCHEMA = 'my_database'
GROUP BY TABLE_NAME 
HAVING COUNT(DISTINCT COLUMN_NAME) = 3;
  1. MySQL में विशिष्ट कॉलम नाम वाली टेबल कैसे खोजें MySQL में विशिष्ट कॉलम नाम वाली टेबल कैसे खोजें

    information_schema.columns टेबल को क्वेरी करके डेटाबेस में विशिष्ट कॉलम नाम वाली सभी टेबल खोजें। सिंटैक्स SELECT DISTINCT table_name FROM information_schema.columns WHERE column_name LIKE %yourSearchValue% AND table_schema = DATABASE(); उदाहरण: Client वाली कॉलम खोजना SELECT DISTINCT table_name FR

  1. - MySQL में GROUP BY HAVING और सबक्वेरी से एकाधिक कॉलम में सटीक डुप्लिकेट पंक्तियाँ खोजें

    एकाधिक कॉलम में सटीक समान मान वाली डुप्लिकेट पंक्तियाँ खोजने के लिए GROUP BY + 1 को सबक्वेरी में उपयोग करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1861 ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Name VARCHAR(20), Marks INT ); डेटा डालें mysql> INSERT INTO DemoTable1861(Name

  1. - MySQL में कॉमा-सेपरेटेड मान वाले कॉलम में विशिष्ट संख्या खोजकर रिकॉर्ड चुनें

    CONCAT() + LIKE कॉमा सेपरेटेड स्ट्रिंग में सटीक संख्या मिलान के लिए: select * from yourTableName where concat(,, yourColumnName, ,) like %,yourValue,%; उदाहरण insert into demo49 values(4,5,6,Adam), (5,3,2,Mike), (3,4,9,Bob); संख्या 4 खोजना select * from demo49 where concat(,, id, ,) like %,4,%;