Извличане на записи по конкретни стойности в Python
Ако трябва да изберете запис от някоя
група от стойности на полета, можете да приложите
командата IN. Например, можете да изберете
записи, чието поле name има
стойност 'user1', 'user3'
или 'user4'. Това ще изглежда
така: WHERE id IN ('user1',
'user3', 'user4').
По принцип, за такива неща може да се използва
и командата OR,
тогава първият пример ще изглежда така:
WHERE id=1 OR id=3 OR
id=7 OR id=14 OR id=28.
Вариантът с IN все пак изглежда по-прост
и елегантен.
Пример
Нека изберем потребители, чието поле id
има стойности 1, 3, 5:
query = "SELECT * FROM users WHERE id IN (1, 3, 5)"
Резултат от изпълнения код:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Пример
Командата IN може да се комбинира с
други команди в заявката. Нека
пренапишем предишния пример, като посочим още,
че възрастта на потребителите трябва да е над
23 години:
query = "SELECT * FROM users WHERE id IN (1, 3, 5) AND age>23"
Резултат от изпълнения код:
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Практически задачи
Извлечете потребители, чиято заплата има
стойности 400 и 900.
Извлечете потребители, чиято възраст е
25, 27 и 28 години. При
това id да е повече от 2.