Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL da sostituire con caratteri jolly

Aggiornamento:MySQL 8.0 ha una funzione REGEX_REPLACE() .

Di seguito è riportata la mia risposta del 2014, che si applica ancora a qualsiasi versione di MySQL precedente alla 8.0:

REPLACE() non ha alcun supporto per caratteri jolly, modelli, espressioni regolari, ecc. REPLACE() sostituisce solo una stringa costante con un'altra stringa costante.

Potresti provare qualcosa di complesso, per individuare la parte iniziale della stringa e la parte finale della stringa:

UPDATE table
SET Configuration = CONCAT(
      SUBSTR(Configuration, 1, LOCATE('<tag>', Configuration)+4),
      NEW_DATA,
      SUBSTR(Configuration, LOCATE('</tag>', Configuration)
    )

Ma questo non funziona per i casi in cui sono presenti più occorrenze di <tag> .

Potrebbe essere necessario recuperare la riga in un'applicazione, eseguire la sostituzione della stringa utilizzando la lingua preferita e inviare nuovamente la riga. In altre parole, un processo in tre fasi per ogni riga.