Įrašų atranka pagal konkrečias reikšmes Python
Jei reikia atrinkti įrašus iš kokios nors
reikšmių grupės laukų, galima pritaikyti
komandą IN. Pavyzdžiui, galima atrinkti
įrašus, kurių laukas name turi
reikšmę 'user1', 'user3'
arba 'user4'. Tai atrodys taip:
WHERE id IN ('user1',
'user3', 'user4').
Iš principo, tokiems dalykams galima naudotis
ir komanda OR,
tada pirmasis pavyzdys atrodys taip:
WHERE id=1 OR id=3 OR
id=7 OR id=14 OR id=28.
Variantas su IN vis dėlto atrodo paprasčiau
ir elegantiškiau.
Pavyzdys
Atrinkime vartotojus, kurių laukas id
turi reikšmes 1, 3, 5:
query = "SELECT * FROM users WHERE id IN (1, 3, 5)"
Vykdyto kodo rezultatas:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Pavyzdys
Komandą IN galima derinti su
kitiomis komandomis užklausoje. Perrašykime
ankstesnį pavyzdį, nurodydami dar,
kad vartotojų amžius turi būti daugiau nei
23 metai:
query = "SELECT * FROM users WHERE id IN (1, 3, 5) AND age>23"
Vykdyto kodo rezultatas:
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Praktinės užduotys
Gaukite vartotojus, kurių atlyginimas turi
reikšmes 400 ir 900.
Gaukite vartotojus, kurių amžius yra
25, 27 ir 28 metai. Be
to, id didesnis nei 2.