To zapytanie zwróci wiersze, w których b
to albo 5
lub 7
, ORAZ c
to 4
.
Co rozumiesz przez „ocenę w parach?”
Aktualizacja:
Do próbki dodam jeszcze jeden wiersz:
+----------+----------+----------+
| PK | b | c |
+----------+----------+----------+
| 1 | 2 | 3 |
+----------+----------+----------+
| 2 | 5 | 4 |
+----------+----------+----------+
| 3 | 7 | 9 |
+----------+----------+----------+
| 4 | 7 | 4 |
+----------+----------+----------+
| 5 | 2 | 9 |
+----------+----------+----------+
Jeśli chcesz dopasować całe zestawy, możesz użyć następującej składni:
SELECT *
FROM table_name
WHERE (b, c) IN ((2, 3), (7, 9))
Oznacza to:„zwróć wszystkie wiersze, w których b
to 2
i c
to 3
w tym samym czasie LUB b
to 7
i с
to 9
w tym samym czasie."
W powyższym przykładzie to zapytanie zwróci wiersze 1
i 3
Ale jeśli przepiszesz to zapytanie na odwrót, w ten sposób:
SELECT *
FROM table_name
WHERE b IN (2, 7)
AND c IN (3, 9)
, będzie to oznaczać „zwróć wszystkie wiersze, w których b
to albo 2
lub 7
, ORAZ c
to albo 3
lub 9
).
To zwróci wiersze 1
, 3
i 5
, ponieważ wiersz 5
spełnia warunek drugiego zapytania, ale nie pierwszego.