Aktualizace:MySQL 8.0 má funkci REGEX_REPLACE() .
Níže je moje odpověď z roku 2014, která stále platí pro jakoukoli verzi MySQL před 8.0:
REPLACE() nepodporuje zástupné znaky, vzory, regulární výrazy atd. REPLACE() pouze nahrazuje jeden konstantní řetězec jiným konstantním řetězcem.
Můžete zkusit něco složitého, vybrat přední část řetězce a koncovou část řetězce:
UPDATE table
SET Configuration = CONCAT(
SUBSTR(Configuration, 1, LOCATE('<tag>', Configuration)+4),
NEW_DATA,
SUBSTR(Configuration, LOCATE('</tag>', Configuration)
)
To však nefunguje v případech, kdy máte více výskytů <tag>
.
Možná budete muset načíst řádek zpět do aplikace, provést nahrazení řetězce pomocí vašeho oblíbeného jazyka a odeslat řádek zpět. Jinými slovy, proces tří kroků pro každý řádek.