Cập nhật:MySQL 8.0 có một hàm REGEX_REPLACE () .
Dưới đây là câu trả lời của tôi từ năm 2014, vẫn áp dụng cho bất kỳ phiên bản nào của MySQL trước 8.0:
REPLACE () không có bất kỳ hỗ trợ nào cho ký tự đại diện, mẫu, biểu thức chính quy, v.v. REPLACE () chỉ thay thế một chuỗi hằng số cho một chuỗi hằng số khác.
Bạn có thể thử một cái gì đó phức tạp, để chọn phần đầu của chuỗi và phần cuối của chuỗi:
UPDATE table
SET Configuration = CONCAT(
SUBSTR(Configuration, 1, LOCATE('<tag>', Configuration)+4),
NEW_DATA,
SUBSTR(Configuration, LOCATE('</tag>', Configuration)
)
Nhưng điều này không hiệu quả đối với trường hợp bạn có nhiều lần xuất hiện <tag>
.
Bạn có thể phải tìm nạp lại hàng đó vào một ứng dụng, thực hiện thay thế chuỗi bằng ngôn ngữ yêu thích của bạn và đăng lại hàng đó. Nói cách khác, quy trình ba bước cho mỗi hàng.