PDA

View Full Version : [MYSQL] estrarre stringa costituita da 4 numeri adiacenti


HRBF
10-04-2017, 10:43
Buongiorno a tutti,

ho necessitą di costruire una query per estrarre una sottostringa costituita da 4 numeri adiacenti. Esempio:

"AB-1-2345abc" => 2345
"1234abchda" => 1234
"1-2345-678" => 2345

La posizione dei 4 numeri all'interno della stringa non č conosciuta, l'unica cosa nota č che sono sempre 4 numeri adiacenti.

La query dovrebbe essere qualcosa di questo tipo:

select SUBSTRING (colonna, posizione, 4) as risultato from tabella

Non riesco a capire come ottenere la posizione di 4 numeri adiacenti nella stringa. Consigli?

wingman87
10-04-2017, 14:28
Potresti usare le regular expression ma da una ricerca rapida ho letto che con le funzioni out of the box non č possibile estrarre un pattern da una stringa.
Ci sono delle librerie esterne che aggiungono questa funzionalitą, tipo quella della risposta di questa domanda su stackoverflow:

http://stackoverflow.com/questions/5361457/mysql-return-matching-pattern-in-regexp-query

HRBF
10-04-2017, 15:02
Ciao, grazie per la risposta. In seguito ad alcune ricerche avevo trovato anche io la possibilitą di utilizzare le regular expression ma non sono riuscito a capire come combinarle ad una substring.
A questo punto credo mi convenga selezionare un insieme di record e processarli direttamente lato server