SQL LIKE IN: come eseguire una select con clausola like e un insieme di regole

di Lorenzo Neri
261 visualizzazioni

SQL LIKE IN: come eseguire una select con clausola like e un insieme di regole? Vuoi fare un confronto multiplo basato sull’operatore “IN” e quindi sfruttare la possibilità di confrontare l’output con più di un singolo valore? In questo articolo voglio spiegarti due strade differenti.

Il linguaggio SQL ci permette di fare non poche operazioni e fra queste c’è senza dubbio l’operatore “LIKE” che permette di confrontare l’output di una select con un valore a cui può assomigliare.

Ad un certo punto però, può essere nata in te la necessità di eseguire una select con una clausola “like” appunto, ma con un insieme di regole: diversamente non saresti qui vero?

Ecco, parliamo di queste due strade per eseguire una “SQL LIKE IN” ma prima le presentazioni.

Il mio nome è Lorenzo Neri e sono un informatico: mi occupo di realizzare contenuti che aiutino persone come te a padroneggiare l’arte del nuovo millennio, l’informatica!

Devi sapere che questo blog l’ho creato partendo da tutta quella serie di problemi che ho avuto lungo la mia carriera: perché quale miglior modo se non lasciare una traccia, un qualcosa che possa aiutare una persona come te che mi stai leggendo, affinché ne si possa beneficiare tutti quanti? Ciò detto, cominciamo!

SQL LIKE IN: come eseguire una select con clausola like e le REGEX

La prima strada da percorrere che ti propongo, è quella delle REGEX: le espressioni regolari.

Le espressioni regolari possono essere usate anche all’interno delle query SQL con le dovute variazioni a seconda del database SQL che stai utilizzando, ma in questo caso tornano comode proprio per il nostro obiettivo.

Ma facciamo un esempio per capirci meglio.

Immagina di avere la seguente tabella:

IDcontentLANG
1bla bla blaENG

Questa tabella contiene delle righe il cui attributo “LANG” rappresenta la lingua dello stesso e può essere “ENG”, “ITA”, “DEU”, “FRA”.

Il tuo obiettivo, è quello di estrarre le righe che hanno come valore dell’attributo in questione “ENG” oppure “FRA”: come fare?

Sfruttando l’operatore “REGEXP” possiamo fare come segue:

SELECT * FROM CONTENTS where LANG REGEXP "ENG|FRA"

Quindi, si tratta di integrare i contenuti con cui vogliamo creare la nostra clausola “like”: l’insieme di regole nient’altro sono che i valori da utilizzare.

E se ti dicessi che c’è una seconda strada per eseguire una select con clausola like e un insieme di regole?

SQL LIKE IN: per farla sfruttiamo gli operatori logici

Qual è quell’operatore che performa l’operazione “Se non è zuppa sarà pan bagnato?”: no non l’ho scritto male apposta, sto parlando dell’operatore “OR”.

Tra i tanti operatori che ci mette a disposizione SQL, argomento che ha un’intera categoria sul mio blog e che trovi a distanza di un click qui, possiamo senza dubbio usare anche quelli derivati dalla logica booleana, come appunto l’operatore “OR”.

In sintesi, si tratta di unire la clausola “LIKE” con esso e per riprendere l’esempio di prima:

SELECT * FROM CONTENTS where LANG LIKE "%ENG%" OR LANG LIKE "%FRA%"

Seppur non necessari gli operatori percentuale, li ho voluti mettere per completezza, al fine di darti un esempio ancora più completo prima di salutarti.

Continua a scoprire di più con questi articoli!

Lascia un commento

Questo sito potrebbe fare uso di cookie e siccome l'UE mi obbliga a fartelo presente, eccoti il classico banner dove puoi decidere come gestirli. Accetta Leggi di più