Truy vấn này sẽ trả về các hàng, trong đó b
là 5
hoặc 7
, VÀ c
là 4
.
Ý bạn là gì khi "đánh giá theo cặp?"
Cập nhật:
Tôi sẽ thêm một hàng nữa vào mẫu:
+----------+----------+----------+
| PK | b | c |
+----------+----------+----------+
| 1 | 2 | 3 |
+----------+----------+----------+
| 2 | 5 | 4 |
+----------+----------+----------+
| 3 | 7 | 9 |
+----------+----------+----------+
| 4 | 7 | 4 |
+----------+----------+----------+
| 5 | 2 | 9 |
+----------+----------+----------+
Nếu bạn muốn so khớp toàn bộ, bạn có thể sử dụng cú pháp sau:
SELECT *
FROM table_name
WHERE (b, c) IN ((2, 3), (7, 9))
Điều này có nghĩa là:"trả về tất cả các hàng có b
là 2
và c
là 3
đồng thời, HOẶC b
là 7
và с
là 9
đồng thời. "
Trong ví dụ trên, truy vấn này sẽ trả về các hàng 1
và 3
Nhưng nếu bạn viết lại truy vấn này theo cách khác, như thế này:
SELECT *
FROM table_name
WHERE b IN (2, 7)
AND c IN (3, 9)
, điều này có nghĩa là "trả về tất cả các hàng có b
là 2
hoặc 7
, VÀ c
là 3
hoặc 9
).
Điều này sẽ trả về các hàng 1
, 3
và 5
, kể từ hàng 5
thỏa mãn điều kiện cho truy vấn thứ hai nhưng không thỏa mãn điều kiện cho truy vấn đầu tiên.