Tento dotaz vrátí řádky, kde b
je buď 5
nebo 7
, AND c
je 4
.
Co myslíte „hodnocením ve dvojicích?“
Aktualizace:
K ukázce přidám ještě jeden řádek:
+----------+----------+----------+
| PK | b | c |
+----------+----------+----------+
| 1 | 2 | 3 |
+----------+----------+----------+
| 2 | 5 | 4 |
+----------+----------+----------+
| 3 | 7 | 9 |
+----------+----------+----------+
| 4 | 7 | 4 |
+----------+----------+----------+
| 5 | 2 | 9 |
+----------+----------+----------+
Pokud chcete porovnat celé sady, můžete použít tuto syntaxi:
SELECT *
FROM table_name
WHERE (b, c) IN ((2, 3), (7, 9))
To znamená:"vrátit všechny řádky, kde je b
je 2
a c
je 3
současně NEBO b
je 7
a с
je 9
ve stejnou dobu."
Ve výše uvedeném příkladu tento dotaz vrátí řádky 1
a 3
Ale pokud tento dotaz přepíšete opačně, například takto:
SELECT *
FROM table_name
WHERE b IN (2, 7)
AND c IN (3, 9)
, bude to znamenat "vrátit všechny řádky, kde b
je buď 2
nebo 7
, AND c
je buď 3
nebo 9
).
Tím se vrátí řádky 1
, 3
a 5
, od řádku 5
splňuje podmínku pro druhý dotaz, ale ne pro první.