paolo@bimodesign.com | +34 608 61 64 10

DB Relational

        

MySQL - Usare regexp all'interno delle query

Mysql permette di usare le espressioni regolari, tipiche del linguaggio PHP, all'interno delle query. Vediamo come.
Partiamo da questo banale esempio, che ricerca nella tabella dell'anagrafica dei comuni, tutti quelli che iniziano con CA

SELECT * FROM anagcomu WHERE desc_comu REGEXP "^CA";

Dove il carattere ^ indica che la parola da cercare inizia con il/i carattere/i indicato.
Chiaramente potevamo usare anche la funzione "LIKE"... Questo l'elenco di tutti caratteri speciali che si possono utilizzare

^che iniziano con il carattere successivo
$che finiscano con il carattere precedente
.cerca ogni carattere
*il carattere precedente dovra' essere presente 0 (zero) o piu' volte
+il carattere precedente dovra' essere presente 1 (una) o piu' volte
?il carattere precedente dovra' essere presente 0 (zero) o 1 (una) volta
pippo|plutocerca la stringa "pippo" oppure (OR) la stringa "pluto"
(parola)*cerca 0 (zero) o piu' istanze della stringa "parola"
a{3,5}il carattere precedente alla { (parentesi graffa), in questo caso "a", dovra'  essere presente almeno 3 volte, ma non piu' di 5 volte
[b-eFl]cerca una stringa che contenga le lettere dalla "b" alla "e" (b c d e), e anche la lettera "F" e la lettera "l"
[^b-eFl]cerca una stringa che NON contenga le lettere dalla "b" alla "e" (b c d e), e anche la lettera "F" e la lettera "l"
[[:stringa:]]cerca il termine "stringa", preceduto o seguito da qualunque carattere
[[:<:]]stringa[[:>:]]cerca il termine "stringa" che sia una parola a se stante