दो कॉलम से विशिष्ट संयोजन चुनने के लिए CASE स्टेटमेंट का उपयोग करें।
टेबल बनाएं
mysql> CREATE TABLE select_DistinctTwoColumns (
-> Id INT NOT NULL AUTO_INCREMENT,
-> FirstValue CHAR(1),
-> SecondValue CHAR(1),
-> PRIMARY KEY(Id)
-> );
Query OK, 0 rows affected (0.57 sec)
रिकॉर्ड डालें
mysql> INSERT INTO select_DistinctTwoColumns(FirstValue, SecondValue) VALUES('s', 't');
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO select_DistinctTwoColumns(FirstValue, SecondValue) VALUES('t', 'u');
Query OK, 1 row affected (0.24 sec)
mysql> INSERT INTO select_DistinctTwoColumns(FirstValue, SecondValue) VALUES('u', 'v');
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO select_DistinctTwoColumns(FirstValue, SecondValue) VALUES('u', 't');
Query OK, 1 row affected (0.16 sec)
सभी रिकॉर्ड देखें
mysql> SELECT * FROM select_DistinctTwoColumns;
आउटपुट
+----+------------+-------------+ | Id | FirstValue | SecondValue | +----+------------+-------------+ | 1 | s | t | | 2 | t | u | | 3 | u | v | | 4 | u | t | +----+------------+-------------+ 4 rows in set (0.00 sec)
पंक्ति 1: (s, t) और पंक्ति 4: (u, t) - दोनों में 't' और दूसरा मान है। क्रम की परवाह किए बिना विशिष्ट जोड़े चाहिए।
CASE स्टेटमेंट से विशिष्ट संयोजन चुनें
mysql> SELECT DISTINCT
-> CASE
-> WHEN FirstValue < SecondValue THEN FirstValue
-> ELSE SecondValue
-> END AS FirstColumn,
-> CASE
-> WHEN FirstValue > SecondValue THEN FirstValue
-> ELSE SecondValue
-> END AS SecondColumn
-> FROM select_DistinctTwoColumns;
आउटपुट
+-------------+--------------+ | FirstColumn | SecondColumn | +-------------+--------------+ | s | t | | t | u | | u | v | +-------------+--------------+ 3 rows in set (0.00 sec)
CASE स्टेटमेंट दोनों कॉलम के मानों को वर्णानुक्रम में व्यवस्थित करता है: छोटा मान FirstColumn में, बड़ा मान SecondColumn में। फिर DISTINCT डुप्लिकेट जोड़े हटा देता है। (s,t) और (t,s) दोनों (s,t) बन जाते हैं।