Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL pour remplacer par un caractère générique

Mise à jour :MySQL 8.0 a une fonction REGEX_REPLACE() .

Vous trouverez ci-dessous ma réponse de 2014, qui s'applique toujours à toute version de MySQL antérieure à la 8.0 :

REPLACE() ne prend pas en charge les caractères génériques, les modèles, les expressions régulières, etc. REPLACE() ne remplace qu'une chaîne constante par une autre chaîne constante.

Vous pouvez essayer quelque chose de complexe, pour sélectionner la partie de début de la chaîne et la partie de fin de la chaîne :

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

Mais cela ne fonctionne pas dans les cas où vous avez plusieurs occurrences de <tag> .

Vous devrez peut-être récupérer la ligne dans une application, effectuer un remplacement de chaîne en utilisant votre langue préférée et publier la ligne. En d'autres termes, un processus en trois étapes pour chaque ligne.