Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL para substituir por curinga


Atualização:MySQL 8.0 tem uma função REGEX_REPLACE() .

Abaixo está minha resposta de 2014, que ainda se aplica a qualquer versão do MySQL antes de 8.0:

REPLACE() não tem suporte para curingas, padrões, expressões regulares, etc. REPLACE() apenas substitui uma string constante por outra string constante.

Você pode tentar algo complexo, para escolher a parte inicial da string e a parte final da string:
UPDATE table
SET Configuration = CONCAT(
      SUBSTR(Configuration, 1, LOCATE('<tag>', Configuration)+4),
      NEW_DATA,
      SUBSTR(Configuration, LOCATE('</tag>', Configuration)
    )

Mas isso não funciona para casos em que você tem várias ocorrências de <tag> .

Você pode ter que buscar a linha de volta em um aplicativo, realizar a substituição de string usando seu idioma favorito e postar a linha de volta. Em outras palavras, um processo de três etapas para cada linha.