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

MySQL में GROUP BY HAVING और IN से एकाधिक मान शर्त पूरी करने वाली पंक्तियाँ चुनें

किसी कॉलम (जैसे Subject) में एकाधिक विशिष्ट मान (MySQL, MongoDB) **दोनों** रखने वाले समूह (FirstName) खोजने के लिए IN फ़िल्टर + GROUP BY + HAVING COUNT(*) = N का उपयोग करें।

टेबल बनाएं

mysql> CREATE TABLE DemoTable1885 (FirstName VARCHAR(20), Subject VARCHAR(50));

डेटा डालें

mysql> INSERT INTO DemoTable1885 VALUES('John', 'MySQL'), ('John', 'MongoDB'), ('Carol', 'MySQL'), ('David', 'Java');

MySQL और MongoDB दोनों वाले नाम

mysql> SELECT FirstName FROM DemoTable1885
    WHERE Subject IN ('MySQL', 'MongoDB')
    GROUP BY FirstName
    HAVING COUNT(*) = 2;

आउटपुट:

+-----------+
| FirstName |
+-----------+
| John      |
+-----------+

व्याख्या

  1. WHERE Subject IN ('MySQL', 'MongoDB') → केवल ये दो विषय वाली पंक्तियाँ रखें।
  2. GROUP BY FirstName → नाम अनुसार समूह।
  3. HAVING COUNT(*) = 2 → दोनों विषय मौजूद होने पर ही (गणना 2)।

सामान्यीकृत: N मान

SELECT FirstName FROM DemoTable1885
WHERE Subject IN ('MySQL', 'MongoDB', 'PostgreSQL')
GROUP BY FirstName
HAVING COUNT(DISTINCT Subject) = 3;

विकल्प: सशर्त एग्रीगेशन

SELECT FirstName FROM DemoTable1885
GROUP BY FirstName
HAVING SUM(Subject = 'MySQL') > 0
   AND SUM(Subject = 'MongoDB') > 0;

नोट

  • COUNT(*) डुप्लिकेट पंक्तियाँ गिनता है; COUNT(DISTINCT Subject) अद्वितीय विषय गिनता है।
  • IN सूची और HAVING COUNT संख्या मेल खानी चाहिए।
  1. - MySQL में UPDATE WHERE से विशिष्ट पंक्ति और कॉलम मान अपडेट करें

    MySQL में UPDATE स्टेटमेंट और WHERE क्लॉज का उपयोग करके विशिष्ट पंक्ति के विशिष्ट कॉलम का मान बदल सकते हैं। सिंटैक्स UPDATE टेबल_नाम SET कॉलम_नाम = नया_मान WHERE शर्त; उदाहरण: StudentId अपडेट करें जहां StudentName = Carol Taylor 1. टेबल बनाएं ); 2. डेटा डालें INSERT INTO DemoTable1569 VALUES(D

  1. - MySQL कॉलम मान में ZEROFILL के साथ अग्रणी शून्य कैसे जोड़ें?

    MySQL में संख्यात्मक कॉलम में अग्रणी शून्य (leading zeros) जोड़कर निश्चित चौड़ाई का डिस्प्ले फॉर्मेट प्राप्त करने के लिए ZEROFILL एट्रिब्यूट का उपयोग करें। यह अकाउंट नंबर, इनवॉइस नंबर, आईडी आदि के लिए आदर्श है। उदाहरण: ZEROFILL के साथ ऑटो-इन्क्रीमेंट ID 4-अंकीय ZEROFILL कॉलम के साथ टेबल बनाएं: my

  1. - MySQL में अगली पंक्ति पेजिनेशन कैसे चुनें?

    LIMIT क्लॉज LIMIT offset, row_count से पेजिनेशन लागू करें। उदाहरण insert into demo40(name) values(Chris), (David), (Mike), (Sam), (Carol), (bob); 5वीं और 6वीं पंक्ति प्राप्त करना (offset=4, count=2) select * from demo40 limit 4,2; +----+-------+ | id | name | +----+-------+ | 5 | Carol | | 6