Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL zum Ersetzen durch Platzhalter

Update:MySQL 8.0 hat eine Funktion REGEX_REPLACE() .

Unten ist meine Antwort von 2014, die immer noch für alle MySQL-Versionen vor 8.0 gilt:

REPLACE() hat keine Unterstützung für Platzhalter, Muster, reguläre Ausdrücke usw. REPLACE() ersetzt nur einen konstanten String durch einen anderen konstanten String.

Sie könnten etwas Komplexes versuchen, um den führenden Teil der Zeichenfolge und den abschließenden Teil der Zeichenfolge herauszusuchen:

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

Dies funktioniert jedoch nicht für Fälle, in denen <tag> mehrfach vorkommt .

Möglicherweise müssen Sie die Zeile in eine Anwendung zurückholen, die Zeichenfolge in Ihrer bevorzugten Sprache ersetzen und die Zeile zurückschicken. Mit anderen Worten, ein dreistufiger Prozess für jede Zeile.