टपल तुलना के साथ IN() का उन्नत उपयोग
एकाधिक कॉलम के संयोजन पर आधारित पंक्तियां चुनने के लिए WHERE (col1, col2) IN ((val1, val2), (val3, val4), ...) सिंटैक्स का उपयोग करें।
टेबल और डेटा
mysql> CREATE TABLE DemoTable1045 (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
FirstName VARCHAR(100)
) AUTO_INCREMENT=100;
Query OK, 0 rows affected (0.62 sec)
mysql> INSERT INTO DemoTable1045(FirstName) VALUES('John');
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DemoTable1045(FirstName) VALUES('Chris');
Query OK, 1 row affected (0.27 sec)
mysql> INSERT INTO DemoTable1045(FirstName) VALUES('Robert');
Query OK, 1 row affected (0.10 sec)
mysql> INSERT INTO DemoTable1045(FirstName) VALUES('Mike');
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable1045(FirstName) VALUES('Adam');
Query OK, 1 row affected (0.08 sec)
सभी रिकॉर्ड
mysql> SELECT * FROM DemoTable1045;
+-----+-----------+ | Id | FirstName | +-----+-----------+ | 100 | John | | 101 | Chris | | 102 | Robert | | 103 | Mike | | 104 | Adam | +-----+-----------+ 5 rows in set (0.00 sec)
विशिष्ट (Id, FirstName) जोड़े चुनना
mysql> SELECT * FROM DemoTable1045 tbl
WHERE (tbl.Id, tbl.FirstName) IN ((101,'Chris'), (102,'Robert'), (104,'Adam'));
परिणाम:
+-----+-----------+ | Id | FirstName | +-----+-----------+ | 101 | Chris | | 102 | Robert | | 104 | Adam | +-----+-----------+ 3 rows in set (0.05 sec)
व्याख्या: (tbl.Id, tbl.FirstName) एक पंक्ति टपल बनाता है। IN सूची में टपल से मेल खाता है। यह WHERE (Id=101 AND FirstName='Chris') OR ... से अधिक संक्षिप्त और पठनीय है।