Aktualizacja:MySQL 8.0 ma funkcję REGEX_REPLACE() .
Poniżej moja odpowiedź z 2014 r., która nadal dotyczy dowolnej wersji MySQL przed 8.0:
REPLACE() nie obsługuje symboli wieloznacznych, wzorców, wyrażeń regularnych itp. REPLACE() zastępuje tylko jeden stały ciąg innym stałym ciągiem.
Możesz spróbować czegoś złożonego, aby wybrać wiodącą i końcową część ciągu:
UPDATE table
SET Configuration = CONCAT(
SUBSTR(Configuration, 1, LOCATE('<tag>', Configuration)+4),
NEW_DATA,
SUBSTR(Configuration, LOCATE('</tag>', Configuration)
)
Ale to nie działa w przypadkach, gdy masz wiele wystąpień <tag>
.
Może być konieczne pobranie wiersza z powrotem do aplikacji, wykonanie zamiany ciągów przy użyciu ulubionego języka i ponowne przesłanie wiersza. Innymi słowy, trzyetapowy proces dla każdego rzędu.