Rekordok kiválasztása konkrét értékek alapján Pythonban
Ha ki kell választani egy rekordot egy mezőértékek
csoportjából, használhatjuk a
IN parancsot. Például kiválaszthatjuk
azokat a rekordokat, amelyeknél a name mező
értéke 'user1', 'user3'
vagy 'user4'. Ez így fog kinézni:
WHERE id IN ('user1',
'user3', 'user4').
Elvileg az ilyen dolgokhoz használhatjuk
a OR parancsot is,
ekkor az első példa így néz ki:
WHERE id=1 OR id=3 OR
id=7 OR id=14 OR id=28.
A IN verzió mindenesetre egyszerűbbnek
és elegánsabbnak tűnik.
Példa
Válasszuk ki azokat a felhasználókat, amelyeknél a id
mező értéke 1, 3 vagy 5:
query = "SELECT * FROM users WHERE id IN (1, 3, 5)"
A végrehajtott kód eredménye:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Példa
A IN parancs kombinálható más
parancsokkal a lekérdezésben. Írjuk át az előző
példát úgy, hogy megadjuk, a felhasználók
életkornak 23 évnél többnek kell lennie:
query = "SELECT * FROM users WHERE id IN (1, 3, 5) AND age>23"
A végrehajtott kód eredménye:
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Gyakorlati feladatok
Kérdezzük le azokat a felhasználókat, akiknek a fizetése
400 vagy 900.
Kérdezzük le azokat a felhasználókat, akiknek életkora
25, 27 vagy 28 év. Eközben
az id-nek 2-nál nagyobbnak kell lennie.