Selezione di record per valori specifici in Python
Se è necessario selezionare un record da un
gruppo di valori di campi, è possibile utilizzare
il comando IN. Ad esempio, è possibile selezionare
record in cui il campo name ha
valore 'user1', 'user3'
o 'user4'. Apparirà così:
WHERE id IN ('user1',
'user3', 'user4').
In linea di principio, per queste cose si può usare
anche il comando OR,
allora il primo esempio apparirà così:
WHERE id=1 OR id=3 OR
id=7 OR id=14 OR id=28.
La variante con IN sembra comunque più semplice
ed elegante.
Esempio
Selezioniamo gli utenti il cui campo id
ha valori 1, 3, 5:
query = "SELECT * FROM users WHERE id IN (1, 3, 5)"
Risultato del codice eseguito:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Esempio
Il comando IN può essere combinato con
altri comandi nella query. Riscriviamo
l'esempio precedente, specificando inoltre
che l'età degli utenti deve essere superiore a
23 anni:
query = "SELECT * FROM users WHERE id IN (1, 3, 5) AND age>23"
Risultato del codice eseguito:
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Compiti pratici
Recupera gli utenti il cui stipendio ha
valori 400 e 900.
Recupera gli utenti la cui età è
25, 27 e 28 anni. Con
id superiore a 2.