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

Truy vấn MySQL cắt chuỗi lấy phần sau dấu gạch dưới (underscore)

Để 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.