Diese Abfrage gibt Zeilen zurück, wobei b
ist entweder 5
oder 7
, UND c
ist 4
.
Was meinen Sie mit „Evaluierung zu zweit“?
Aktualisierung:
Ich füge dem Beispiel eine weitere Zeile hinzu:
+----------+----------+----------+
| PK | b | c |
+----------+----------+----------+
| 1 | 2 | 3 |
+----------+----------+----------+
| 2 | 5 | 4 |
+----------+----------+----------+
| 3 | 7 | 9 |
+----------+----------+----------+
| 4 | 7 | 4 |
+----------+----------+----------+
| 5 | 2 | 9 |
+----------+----------+----------+
Wenn Sie die ganzen Sätze abgleichen möchten, können Sie diese Syntax verwenden:
SELECT *
FROM table_name
WHERE (b, c) IN ((2, 3), (7, 9))
Das bedeutet:„Gib alle Zeilen zurück, in denen b
ist 2
und c
ist 3
gleichzeitig ODER b
ist 7
und с
ist 9
gleichzeitig."
Im obigen Beispiel gibt diese Abfrage die Zeilen 1
zurück und 3
Aber wenn Sie diese Abfrage andersherum umschreiben, etwa so:
SELECT *
FROM table_name
WHERE b IN (2, 7)
AND c IN (3, 9)
, bedeutet dies "alle Zeilen zurückgeben, in denen b
ist entweder 2
oder 7
, UND c
ist entweder 3
oder 9
).
Dadurch werden die Zeilen 1
zurückgegeben , 3
und 5
, seit Zeile 5
erfüllt die Bedingung für die zweite Abfrage, aber nicht für die erste.