ใช้ Tuple Comparison (col1, col2) = (val1, val2) ใน WHERE เพื่อกรองหลายคอลัมน์พร้อมกัน
สร้างตารางและเพิ่มข้อมูล
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(10),
Score INT
);
mysql> INSERT INTO DemoTable(Name, Score) VALUES
('John', 80), ('John', 90), ('Carol', 89),
('John', 86), ('Carol', 98), ('David', 99);
ดูข้อมูล
mysql> SELECT * FROM DemoTable;
+----+-------+-------+
| Id | Name | Score |
+----+-------+-------+
| 1 | John | 80 |
| 2 | John | 90 |
| 3 | Carol | 89 |
| 4 | John | 86 |
| 5 | Carol | 98 |
| 6 | David | 99 |
+----+-------+-------+
ค้นหา: (Name='John' AND Score=90) OR (Name='Carol' AND Score=98)
mysql> SELECT * FROM DemoTable
-> WHERE (Name, Score) = ('John', 90) OR (Name, Score) = ('Carol', 98);
ผลลัพธ์
+----+-------+-------+
| Id | Name | Score |
+----+-------+-------+
| 2 | John | 90 |
| 5 | Carol | 98 |
+----+-------+-------+
ข้อดี: เขียนกระชับ อ่านง่าย ประสิทธิภาพดี (MySQL optimize ได้)
รองรับ IN ด้วย: WHERE (Name, Score) IN (('John', 90), ('Carol', 98))