back to top

Gli operatori LIKE, BETWEEN e IN di MySQL

In questa lezione vedremo altri interessanti operatori supportati da MySQL, ovvero: LIKE, BETWEEN e IN.

L’operatore LIKE

Un operatore piuttosto "particolare" è LIKE il quale consente di effettuare dei "paragoni di somiglianza". Supponiamo ad esempio di voler estrarre dalla nostra tabella "amici" tutti i record corrispondenti ad un nome che inizia per "Maria":

SELECT * FROM amici WHERE nome LIKE 'Maria%';

Questa query restituirà nomi del tipo:

Maria
Maria Rosa
Maria Antonietta

Se invece avessimo scritto la clasuola WHERE in questo modo:

WHERE nome LIKE '%Maria';

Avremmo ottenuto in risposta:

Maria
Anna Maria

La differenza, come avrete già notato, è data dalla posizione del carattere percentuale (%) che sta ad indicare rispettivamente "qualsiasi carattere dopo" e "qualsiasi carattere prima".

Ovviamente avremmo potuto utilizzare anche:

WHERE nome LIKE '%Maria%';

Ottenendo in risposta tutti i nomi che contengono "Maria" all’inizio, in mezzo o alla fine della stringa.

L’operatore BETWEEN

L’operatore BETWEEN consente di effettuare comparazioni in MySQL verificando de un dato valore è compreso all’interno di un range di valori. La sua sintassi è:

<valore> BETWEEN <inizio> AND <fine>

Affinchè possa essere utilizzato correttamente, è necessario che i tre valori trattati dall’operatore (valore, inizio e fine) condividano il medesimo datatype. In caso di successo BETWEEN restituisce 1, in caso contrario 0.

L’operatore BETWEEN, normalmente, è utilizzato all’interno della clausola WHERE quale strumento di selezione dei record e tipicamente è utilizzato per operare su campi numerici oppure di tipo data.

Facciamo un esempio: supponiamo di voler cercare, all’interno di un ipotetico catalogo, i prodotti con prezzi compresi tra 50 e 100 Euro:

SELECT id, prodotto, prezzo
FROM catalogo
WHERE prezzo BETWEEN 50 AND 100;

Avremmo potuto ottenere il medesimo risultato anche utilizzando gli operatori >= e <= in questo modo:

SELECT id, prodotto, prezzo
FROM catalogo
WHERE prezzo >= 50 AND prezzo <= 100;

Un caso tipico di utilizzo dell’operatore BETWEEN è per effettuare ricerche all’interno di intervalli di date. Ad esempio:

SELECT id, cliente, spesa
FROM ordini
WHERE data_acquisto BETWEEN '2014-01-01 00:00:00' AND '2014-12-31 23:59:59';

E’ appena il caso di ricordare che qualora si desideri filtrare i record esterni ad un dato range sarà sufficiente anteporre NOT all’operatore BETWEEN.

L’operatore IN

L’operatore IN è utilizzato in MySQL per verificare se un dato valore è contenuto all’interno di una data lista di valori. La sua sintassi è la seguente:

<valore> IN (<valore1>,<valore2>,...)

Nella pratica l’operatore IN si rivela molto utile ed è frequentemente utilizzato. Vediamo un esempio: supponiamo di voler estrarre da un database di una ipotetica agenzia di viaggi l’elenco degli hotel situati solo in determinati paesi:

SELECT *
FROM hotel
WHERE nazione IN ('Italia','Francia','USA');

Vale anche per IN l’osservazione fatta in merito all’operatore NOT: grazie al suo utilizzo, infatti, è possibile ottenere il risultato inverso cioè estrarre tutti i valori non compresi nella lista.

Pubblicitร 
Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).

In questa guida...