Để trích xuất phần chuỗi nằm sau dấu gạch dưới (_), MySQL cung cấp hàm SUBSTRING() kết hợp với LOCATE() hoặc sử dụng SUBSTRING_INDEX(). Trong ví dụ này dùng SUBSTRING() với vị trí bắt đầu cố định.
Ví dụ minh họa
Tạo bảng:
mysql> create table DemoTable (
UserName varchar(100)
);
Chèn dữ liệu có tiền tố "Smith_":
mysql> insert into DemoTable values('Smith_John');
mysql> insert into DemoTable values('Smith_Adam');
mysql> insert into DemoTable values('Smith_David');
mysql> insert into DemoTable values('Smith_Mike');
Hiển thị dữ liệu gốc:
mysql> select * from DemoTable;
Kết quả:
+-------------+ | UserName | +-------------+ | Smith_John | | Smith_Adam | | Smith_David | | Smith_Mike | +-------------+
Cập nhật cắt chuỗi lấy phần sau dấu _
mysql> update DemoTable set UserName=substring(UserName,7) where UserName LIKE 'Smith_%';
Giải thích: substring(UserName,7) lấy chuỗi con bắt đầu từ ký tự thứ 7 (sau "Smith_" có 6 ký tự). Điều kiện WHERE đảm bảo chỉ cập nhật các hàng có tiền tố "Smith_".
Kiểm tra lại:
mysql> select * from DemoTable;
Kết quả:
+----------+ | UserName | +----------+ | John | | Adam | | David | | Mike | +----------+
Lưu ý: Cách này chỉ phù hợp khi tiền tố có độ dài cố định. Nếu tiền tố độ dài biến đổi, hãy dùng SUBSTRING_INDEX(UserName, '_', -1) để lấy phần sau dấu _ cuối cùng, hoặc SUBSTRING(UserName, LOCATE('_', UserName) + 1) để lấy sau dấu _ đầu tiên.