Xóa phần chuỗi con trong cột MySQL với REPLACE()
Sử dụng REPLACE(column, 'text_to_remove', '') để xóa tất cả lần xuất hiện của chuỗi con khỏi giá trị cột.
Cú pháp
UPDATE yourTableName SET yourColumnName = REPLACE(yourColumnName, 'textToRemove', '');
Ví dụ: Tách số phiên bản từ "Java Version X.Y"
Tạo bảng:
mysql> CREATE TABLE removePartialTextDemo (
-> JavaVersionDetails VARCHAR(100)
-> );
Chèn dữ liệu:
mysql> INSERT INTO removePartialTextDemo VALUES
('Java Version 1.0'), ('Java Version 1.1'), ('Java Version 1.2'),
('Java Version 1.3'), ('Java Version 1.4'), ('Java Version 7');
Dữ liệu ban đầu:
+--------------------+ | JavaVersionDetails | +--------------------+ | Java Version 1.0 | | Java Version 1.1 | | Java Version 1.2 | | Java Version 1.3 | | Java Version 1.4 | | Java Version 7 | +--------------------+
Xóa tiền tố "Java Version ":
mysql> UPDATE removePartialTextDemo SET JavaVersionDetails = REPLACE(JavaVersionDetails, 'Java Version ', ''); Query OK, 6 rows affected
Kết quả:
+--------------------+ | JavaVersionDetails | +--------------------+ | 1.0 | | 1.1 | | 1.2 | | 1.3 | | 1.4 | | 7 | +--------------------+
Các trường hợp phổ biến
- Xóa tiền tố:
REPLACE(col, 'prefix_', '') - Xóa hậu tố:
REPLACE(col, '_suffix', '') - Xóa ký tự đặc biệt:
REPLACE(REPLACE(col, '-', ''), ' ', '')(lồng nhau) - Chuẩn hóa số điện thoại:
REPLACE(REPLACE(REPLACE(phone, ' ', ''), '-', ''), '(', '')
Lưu ý
REPLACEphân biệt chữ hoa/thường- Thay thế tất cả lần xuất hiện, không chỉ lần đầu
- Kết hợp WHERE để giới hạn:
WHERE col LIKE '%textToRemove%' - Backup trước khi UPDATE hàng loạt
- Để xóa theo pattern phức tạp: dùng REGEXP_REPLACE (MySQL 8.0+) hoặc xử lý ở ứng dụng