SELECT * के साथ विशिष्ट ID प्राप्त करने के लिए GROUP BY कमांड का उपयोग करें।
सिंटैक्स
SELECT * FROM yourTableName GROUP BY yourColumnName;
उदाहरण के साथ समझें
सबसे पहले एक टेबल बनाते हैं (बिना प्राइमरी की के ताकि डुप्लिकेट ID डाले जा सकें):
mysql> CREATE TABLE DistinctIdDemo (
-> Id INT,
-> Name VARCHAR(20),
-> Age INT
-> );
Query OK, 0 rows affected (1.03 sec)
डुप्लिकेट ID के साथ रिकॉर्ड डालें
mysql> INSERT INTO DistinctIdDemo VALUES(1, 'Mike', 23); Query OK, 1 row affected (0.16 sec) mysql> INSERT INTO DistinctIdDemo VALUES(2, 'Sam', 24); Query OK, 1 row affected (0.20 sec) mysql> INSERT INTO DistinctIdDemo VALUES(1, 'Carol', 23); Query OK, 1 row affected (0.15 sec) mysql> INSERT INTO DistinctIdDemo VALUES(1, 'John', 28); Query OK, 1 row affected (0.33 sec) mysql> INSERT INTO DistinctIdDemo VALUES(3, 'David', 26); Query OK, 1 row affected (0.22 sec) mysql> INSERT INTO DistinctIdDemo VALUES(2, 'Larry', 29); Query OK, 1 row affected (0.20 sec)
सभी रिकॉर्ड देखें
mysql> SELECT * FROM DistinctIdDemo;
आउटपुट
+------+-------+------+ | Id | Name | Age | +------+-------+------+ | 1 | Mike | 23 | | 2 | Sam | 24 | | 1 | Carol | 23 | | 1 | John | 28 | | 3 | David | 26 | | 2 | Larry | 29 | +------+-------+------+ 6 rows in set (0.00 sec)
ID 1 तीन बार और ID 2 दो बार दोहराया गया है।
DISTINCT ID के साथ सभी कॉलम चुनें
mysql> SELECT * FROM DistinctIdDemo GROUP BY Id;
आउटपुट
+------+-------+------+ | Id | Name | Age | +------+-------+------+ | 1 | Mike | 23 | | 2 | Sam | 24 | | 3 | David | 26 | +------+-------+------+ 3 rows in set (0.00 sec)
महत्वपूर्ण नोट: MySQL में GROUP BY के साथ SELECT * का उपयोग करने पर, ग्रुप में पहली पंक्ति के मान लौटाए जाते हैं (जो अनिश्चित हो सकते हैं)। विशिष्ट कॉलम के लिए एग्रीगेट फ़ंक्शन (MIN, MAX, ANY_VALUE) का उपयोग करना बेहतर है।
बेहतर दृष्टिकोण
SELECT Id, ANY_VALUE(Name) AS Name, ANY_VALUE(Age) AS Age FROM DistinctIdDemo GROUP BY Id;