Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách xóa một phần văn bản khỏi giá trị trong MySQL?

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 ý

  • REPLACE phâ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