Jedna nebo druhá podmínka: OR
S AND musí řádek splnit všechny podmínky. S OR (nebo) stačí jedna: řádek se dostane do výsledku, když pro něj platí aspoň jedna z podmínek. Nezáleží na tom, která, a můžou platit i obě. Závodní a sportovní hry:
SELECT nazev, zanr
FROM hry
WHERE zanr = 'Závodní'
OR zanr = 'Sportovní'
ORDER BY nazev;| nazev | zanr |
|---|---|
| Goal Rush | Sportovní |
| Ice Hockey Pro | Sportovní |
| Pixel Racer | Závodní |
| Turbo Karts | Závodní |
Všimněte si slova „a“ ve spojení „závodní a sportovní hry“. Chcete oba druhy her, ale žádná hra není závodní a zároveň sportovní, takže zanr = 'Závodní' AND zanr = 'Sportovní' by nenašlo nic. Když převádíte požadavek do SQL, myslete na jeden řádek: musí splnit obě podmínky, nebo stačí jedna? Tady stačí jedna, takže OR.
Podmínky se můžou týkat různých sloupců. Hry, které jsou hodně levné, nebo jen pro dospělé:
SELECT nazev, cena, vek_od
FROM hry
WHERE cena < 200
OR vek_od = 18
ORDER BY nazev;| nazev | cena | vek_od |
|---|---|---|
| Cube Logic | 129 | 3 |
| Zombie Town | 799 | 18 |
Typická chyba: sloupec napsaný jen jednou. Tento dotaz není chyba, ale najde jen závodní hry:
SELECT nazev, zanr
FROM hry
WHERE zanr = 'Závodní' OR 'Sportovní'
ORDER BY nazev;| nazev | zanr |
|---|---|
| Pixel Racer | Závodní |
| Turbo Karts | Závodní |
OR spojuje dvě celé podmínky a 'Sportovní' samo o sobě podmínka není, je to jen text. SQLite takový text považuje za nepravdu, a tak zbude jen první podmínka. Napište sloupec do každé podmínky: zanr = 'Závodní' OR zanr = 'Sportovní'.
Jak psát:
Pokyny
Dotaz v editoru má ukázat zákazníky z Prahy nebo z Ostravy, ale ukazuje jen ty z Prahy. Opravte ho. Výsledek je seřazený podle jména a začíná takto:
| jmeno | mesto |
|---|---|
| Adéla Králová | Praha |
| Eva Novotná | Praha |
| Lukáš Procházka | Ostrava |
| … | … |
Pod něj přidejte dotaz, který ukáže název a cenu her levnějších než 300 Kč nebo dražších než 1 200 Kč, seřazené podle ceny:
| nazev | cena |
|---|---|
| Cube Logic | 129 |
| Word Quest | 249 |
| Goal Rush | 1299 |
| Knight's Oath | 1599 |
Začněte programovat zdarma
5/12