Tôi muốn thay thế hàng loạt trong diễn đàn Xenforo ví dụ thẻ [credits=50;1441754192473]thành [CHARGE=50]thì làm thế nào? Code đơn giản: PHP: UPDATE xf_postSET message = REPLACE(message, '[/credits]', '[/CHARGE]')WHERE message LIKE '%[/credits]%'; Sử dụng Regex: PHP: UPDATE xf_postSET message = REGEXP_REPLACE(message, '\\[credits=([0-9]+);[0-9]+\\]', '[CHARGE=\\1]')WHERE message REGEXP '\\[credits=([0-9]+);[0-9]+\\]'; Bạn có thể làm thay thế hàng loạt trong phpMyAdmin bằng câu lệnh SQL UPDATE + REPLACE () Ví dụ với yêu cầu của bạn: Giả sử: Bảng: My_table Cột chứa dữ liệu: My_column Nếu bạn chỉ muốn thay toàn bộ [credits=50;1441754192473]thành [CHARGE=50](nguyên chuỗi, không thay đổi linh hoạt), thì: PHP: UPDATE my_tableSET my_column = REPLACE(my_column, '[credits=50;1441754192473]', '[CHARGE=50]'); Nếu bạn muốn thay mọi chuỗi dạng [credits=50;SỐ_BẤT_KỲ] thành [CHARGE=50], thì MySQL mặc định không hỗ trợ regex replace trực tiếp trong UPDATE. Bạn sẽ cần: Dùng hàm REGEXP_REPLACE() (nếu MySQL ≥ 8.0): PHP: UPDATE my_tableSET my_column = REGEXP_REPLACE(my_column, '\\[credits=50;[0-9]+\\]', '[CHARGE=50]'); Nếu MySQL < 8.0 (phpMyAdmin nhiều host vẫn là 5.x), bạn phải xuất dữ liệu ra, dùng regex replace trong một trình soạn thảo (VD Notepad++, Sublime Text) rồi import lại, hoặc viết script PHP để replace. Lưu ý an toàn: Nên backup database trước khi chạy lệnh. Nên chạy thử SELECT trước để kiểm tra kết quả: PHP: SELECT my_column, REGEXP_REPLACE(my_column, '\\[credits=50;[0-9]+\\]', '[CHARGE=50]') AS new_columnFROM my_tableWHERE my_column REGEXP '\\[credits=50;[0-9]+\\]'; Ví dụ cụ thể: [credits=123;4567890]→ [CHARGE=123] PHP: UPDATE my_tableSET my_column = REGEXP_REPLACE(my_column, '\\[credits=([0-9]+);[0-9]+\\]', '[CHARGE=\\1]');