Sélection d'enregistrements par des valeurs spécifiques en Python
Si vous avez besoin de sélectionner un enregistrement
parmi un groupe de valeurs de champs, vous pouvez utiliser
la commande IN. Par exemple, vous pouvez sélectionner
les enregistrements dont le champ name a la
valeur 'user1', 'user3'
ou 'user4'. Cela ressemblera à ceci :
WHERE id IN ('user1',
'user3', 'user4').
En principe, pour de telles choses, on pourrait aussi utiliser
la commande OR,
auquel cas le premier exemple ressemblerait à ceci :
WHERE id=1 OR id=3 OR
id=7 OR id=14 OR id=28.
La variante avec IN est tout de même plus simple
et plus élégante.
Exemple
Sélectionnons les utilisateurs dont le champ id
a les valeurs 1, 3, 5 :
query = "SELECT * FROM users WHERE id IN (1, 3, 5)"
Résultat du code exécuté :
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Exemple
La commande IN peut être combinée avec
d'autres commandes dans la requête. Réécrivons
l'exemple précédent en spécifiant en plus
que l'âge des utilisateurs doit être supérieur
à 23 ans :
query = "SELECT * FROM users WHERE id IN (1, 3, 5) AND age>23"
Résultat du code exécuté :
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Tâches pratiques
Sélectionnez les utilisateurs dont le salaire a
les valeurs 400 et 900.
Sélectionnez les utilisateurs dont l'âge est
de 25, 27 et 28 ans.
Et dont l'id est supérieur à 2.