MySQL में केवल अद्वितीय (नॉन-डुप्लिकेट) मान प्रदर्शित करने के लिए GROUP BY के साथ HAVING COUNT(*) = 1 का उपयोग किया जाता है। यह DISTINCT से अलग है जो केवल पहली घटना दिखाता है।
उदाहरण के लिए टेबल बनाना
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Subject VARCHAR(100)
);
डेटा डालना (डुप्लिकेट्स सहित)
mysql> INSERT INTO DemoTable(Subject) VALUES('MySQL'), ('MongoDB'), ('Java'), ('MongoDB'), ('C'), ('C++'), ('Java'), ('C');
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट
+----+---------+ | Id | Subject | +----+---------+ | 1 | MySQL | | 2 | MongoDB | | 3 | Java | | 4 | MongoDB | | 5 | C | | 6 | C++ | | 7 | Java | | 8 | C | +----+---------+
केवल अद्वितीय मान चुनना (जो केवल एक बार आते हैं)
mysql> SELECT Subject FROM DemoTable GROUP BY Subject HAVING COUNT(*) = 1;
आउटपुट
+---------+ | Subject | +---------+ | MySQL | | C++ | +---------+
अंतर: DISTINCT प्रत्येक मान की पहली घटना दिखाता है। GROUP BY ... HAVING COUNT(*)=1 केवल उन मानों को दिखाता है जो पूरी टेबल में ठीक एक बार आते हैं।