Pobieranie rekordów po konkretnych wartościach w Pythonie
Jeśli trzeba wybrać rekord z jakiejś
grupy wartości pól, można zastosować
polecenie IN. Na przykład, można wybrać
rekordy, których pole name ma
wartość 'user1', 'user3'
lub 'user4'. Będzie to wyglądać
tak: WHERE id IN ('user1',
'user3', 'user4').
W zasadzie, do takich rzeczy można używać
również polecenia OR,
wtedy pierwszy przykład będzie wyglądać tak:
WHERE id=1 OR id=3 OR
id=7 OR id=14 OR id=28.
Wariant z IN i tak wygląda prościej
i bardziej elegancko.
Przykład
Wybierzmy użytkowników, których pole id
ma wartości 1, 3, 5:
query = "SELECT * FROM users WHERE id IN (1, 3, 5)"
Wynik wykonanego kodu:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Przykład
Polecenie IN można łączyć z
innymi poleceniami w zapytaniu. Przejdźmy
poprzedni przykład, podając jeszcze,
że wiek użytkowników musi być większy niż
23 lata:
query = "SELECT * FROM users WHERE id IN (1, 3, 5) AND age>23"
Wynik wykonanego kodu:
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Zadania praktyczne
Pobierz użytkowników, których wynagrodzenie ma
wartości 400 i 900.
Pobierz użytkowników, których wiek wynosi
25, 27 i 28 lat. Przy
czym id większe niż 2.