Come filtrare tabella sql tramite una lista di valori
Supponiamo che tu stia filtrando la tua tabella SQL contenente l’anagrafica degli utenti iscritti in un sito-web e nella clausola di selezione voglia inserire una lista di nomi, solitamente provvederesti con una serie di AND posti uno successivamente all’altro. Questo potrebbe rendere la tua query molto disordinata e propensa ad errori, la risoluzione ad una simile tematica si ottiene utilizzando l’apposito operatore IN.
L’operatore IN viene posto all’interno della clausola where e come parametro richiede richiede una lista. La tipologia di elementi che compone la lista può essere di differenti tipologie: testo, numerico, date etc. Componendo una struttura della query simile alla seguente:
SELECT COLONNA1,COLONNA2
FROM TABELLA
WHERE COLONNA1 IN (ELEMENTO1,ELEMENTO2,ELEMENTO3)
Riprendendo l’esempio iniziale dell’anagrafica degli utenti supponiamo di avere a disposizione la seguente tabella:
ID | Nome | Cognome | Indirizzo | Località | CAP | Telefono | Nascita |
1 | Alvisio | Manfrin | Piazza Bovio, 12 | Monteorsello | 41052 | NULL | 15/07/2000 |
2 | Pietro | De Luca | Via Santa Teresa degli Scalzi, 20 | Montelepre | 90040 | 03485405361 | 29/07/1982 |
3 | Brigida | Genovese | Via Lombardi, 17 | Piario | 24020 | 03382627940 | 07/07/1988 |
4 | Salvo | Buccho | Via Torricelli, 31 | Lases | 38040 | 03307380428 | 16/05/1980 |
5 | Orlando | Trevisan | Via Gaetano Donizetti, 91 | Bussolengo | 37012 | NULL | 21/08/1981 |
Se volessimo essere a conoscenza di tutti gli utenti che vivono a Monteorsello, Montelepre e Piario non essendo a conoscenza dell’operatore IN scriveremmo una query di simile alla seguente:
SELECT * FROM ANAGRAFICA_UTENTI
WHERE Località = 'Monteorsello' and Località = 'Montelepre' and Località = 'Piario'
La query utilizzando l’operatore IN all’interno del WHERE ci consentirà di filtrare tramite una lista di valori consentendo di ridurre vistosamente la quantità di codice da scrivere:
SELECT * FROM ANAGRAFICA_UTENTI
WHERE Località in ('Monteorsello','Montelepre','Piario')
Il risultato sarà il medesimo:
ID | Nome | Cognome | Indirizzo | Località | CAP | Telefono | Nascita |
1 | Alvisio | Manfrin | Piazza Bovio, 12 | Monteorsello | 41052 | NULL | 15/07/2000 |
2 | Pietro | De Luca | Via Santa Teresa degli Scalzi, 20 | Montelepre | 90040 | 03485405361 | 29/07/1982 |
3 | Brigida | Genovese | Via Lombardi, 17 | Piario | 24020 | 03382627940 | 07/07/1988 |
LINK UTILI
Pagina Instagram: https://www.instagram.com/developer_sumo/
I nostri corsi: https://www.developersumo.com/corsi/
Corso SQL: https://www.developersumo.com/sql/
Scopri le nostre App su Google Play: https://play.google.com/store/apps/details?id=com.developersumo.app