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

Cập nhật giá trị bằng chuỗi con: xóa phần sau dấu phân cách trong MySQL

Vấn đề

Cột StudentName chứa chuỗi dạng "Name/Number" (ví dụ "John/56989"). Cần cập nhật để chỉ giữ phần trước dấu "/".

1. Tạo bảng

mysql> create table DemoTable (
    StudentName varchar(100)
);
Query OK, 0 rows affected (1.05 sec)

2. Chèn dữ liệu

mysql> insert into DemoTable values('John/56989');
mysql> insert into DemoTable values('Carol');
mysql> insert into DemoTable values('David/74674');
mysql> insert into DemoTable values('Bob/45565');

3. Xem dữ liệu

mysql> select * from DemoTable;
+-------------+
| StudentName |
+-------------+
| John/56989  |
| Carol       |
| David/74674 |
| Bob/45565   |
+-------------+
4 rows in set (0.00 sec)

4. Cập nhật dùng SUBSTRING_INDEX

mysql> update DemoTable set StudentName = substring_index(StudentName, '/', 1);
Query OK, 3 rows affected (0.13 sec)

5. Kết quả sau cập nhật

mysql> select * from DemoTable;
+-------------+
| StudentName |
+-------------+
| John        |
| Carol       |
| David       |
| Bob         |
+-------------+
4 rows in set (0.00 sec)

Giải thích: SUBSTRING_INDEX(str, '/', 1) trả về phần con trước dấu '/' đầu tiên. Nếu không có dấu '/', trả về nguyên chuỗi (như 'Carol').