francesco.chianese
pubblicato più di 2 anni fa

Espressioni regolari con MySQL

Una ricetta introduttiva per conosce il come delle espressioni regolari con MySQL

Le espressioni regolari sono uno strumento che permette, mediante la definizione di pochi simboli, la scrittura di regole per la rappresentazione di insiemi di stringhe su wikipedia una breve trattatazione

http://it.wikipedia.org/wiki/Espressioni_regolari

In MySQL sono un potente strumento che consente di individuare delle stringhe di testo. Per fare un esempio, è possibile utilizzare espressioni regolari per trovare e-mail, l’indirizzi IP, numeri di telefono, che come sappiamo hanno determinate caratteristiche. Ad esempio, supponiamo di avere una semplice tabella “impiegato” che riporta numero codice, nome, cognome e numero di telefono degli impiegati che la popolano. Nel caso in cui volessi estrarre, ad esempio, gli impiegati che abitano nella provincia di Napoli, posso pensare di estrarre le persone i cui numeri di telefono cominciano per 081. Nel caso in cui volessi estrarre gli impiegati che abitano nella provincia di Milano basta estrarre quelle coi numeri di telefono che cominciano per 02 e così via. La sintassi è la seguente

1SELECT lista_colonne
2FROM nome tabella
3WHERE colonna REGEXP schema

Le espressioni regolari sono molto utili in quanto consentono di ridurre le lunghe dichiarazioni SQL con gli operatori AND e OR nella condizione di WHERE. Lo svantaggio di usare espressioni regolari è che non sempre sono facili da capire. Una buona regola di programmazione è quella di commentare molto quando si usano. Facciamo un esempio per capire come utilizzare le espressioni regolari. Supponiamo di avere la tabella impiegato di cui sopra che sia popolata nel seguente modo

Num. Codice Nome Cognome Telefono
000001 Paolo Rossi 0810000001
000002 Paolo Bianchi 0200000001
000003 Paolo Verde 0600000001

Supponiamo di voler estrarre gli impiegati della provincia di Napoli e di Milano. Possiamo dunque estrarre quegli impiegati i cui numeri di telefono cominciano per ‘081’ e ‘02’. Ricorrendo alle espressioni regolari la sintassi è la seguente.

1SELECT *
2FROM impiegato
3WHERE Telefono REGEXP '^(081|02)';

L’output sarà il seguente.

Num. Codice Nome Cognome Telefono
000001 Paolo Rossi 0810000001
000002 Paolo Bianchi 0200000001

L’operatore RLIKE è ammesso come sinonimo di REGEXP.

Condividi su:

Esprimi un voto:

  • Current rating: 0.0/5
  • 1
  • 2
  • 3
  • 4
  • 5

Argomenti chiave:

Ultimi commenti Ultimi commenti

Esegui il Login oppure registrati per scrivere un commento.
Cerca nel sito...
Ultime recipes

Un utilissimo tool di shell che effettua un dettagliato e comodo report su MySQL MySQL Report un tool di shell per tenere tutto sotto controllo

Un utilissimo tool di shell che effettua un dettagliato e comodo report su MySQL


Vai alla recipe

Un utilissimo tool per sniffare il traffico Client/Server TCP/IP di MySQL MySQLSniffer sniffare il traffico TCP di MySQL

Un utilissimo tool per sniffare il traffico Client/Server TCP/IP di MySQL


Vai alla recipe

Verificare l'integrità, riparare gestire chiavi e memoria di tabelle MyISAM attraverso myisamchk riparare file MyISAM

Verificare l'integrità, riparare gestire chiavi e memoria di tabelle MyISAM attraverso il file myisamchk


Vai alla recipe

Un tool per comprimere le tabelle MyISAM fino a oltre il 50% myisampack comprimere file MyISAM

Un tool per comprimere le tabelle MyISAM fino a oltre il 50%


Vai alla recipe

mysqlshow le info di base sui database, tabelle e colonne senza utilizzare alcun mysqlshow visualizzare le informazioni sul database MySQL

mysqlshow le info di base sui database, tabelle e colonne senza utilizzare alcun client


Vai alla recipe

Utilizzando UNION / UNION ALL su campi int unsigned zerofill,
ho notato che MysqlUNION / UNION ALL su campi int unsigned zerofill. di DebUsr
Vai al tip

Utilizzo di funzioni come alias di campo tramite l'impiego di prepared statementReport con alias di campo dinamici di john_revelator
Vai al tip

Può capitare che sia necessario eseguire un dump di database in formato Comma SeparatedEsecuzione dump in formato CSV (tabelle in engine MyIsam esportate in formato CSV) di ghigomatto
Vai al tip

E' possibile eseguire le query SQL contenute in un file di testo. Questo è utileEseguire le query da un file di testo di Sante Caserio
Vai al tip

Se vogliamo fare il backup di tutti i database con mysqldump, e ne abbiamo parecchiFare il backup di tutti i database di Sante Caserio
Vai al tip

Salve,vorrei chiedervi un aiutino per una query che mi infastidisce un pò.
Ho 4 aiuto per una query! di fighterdorico Vai al topic

Salve,vorrei chiedervi un aiutino per una query che mi infastidisce un pò.
Ho 4 aiuto per una query! di fighterdorico Vai al topic

Salve,vorrei chiedervi un aiutino per una query che mi infastidisce un pò.
Ho 4 aiuto per una query! di fighterdorico Vai al topic

Salve a tutti.

Ho una tabella con lettere accentate.
Le lettere vengono visualizzate ordinamento tabelle di ditch Vai al topic

Salve a tutti.

Ho una tabella con lettere accentate.
Le lettere vengono visualizzate ordinamento tabelle di ditch Vai al topic