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

Loại bỏ phần mở rộng -XXX khỏi mã Zip Code bằng SUBSTRING_INDEX trong MySQL

Vấn đề

Mã Zip Code có dạng "12345-6789", cần giữ lại phần trước dấu gạch ngang.

1. Tạo bảng

mysql> create table DemoTable (
    ZipCode varchar(50)
);
Query OK, 0 rows affected (2.02 sec)

2. Chèn dữ liệu

mysql> insert into DemoTable values('52533-909');
mysql> insert into DemoTable values('12345-674');
mysql> insert into DemoTable values('89893-890');
mysql> insert into DemoTable values('AAAAA-783');

3. Xem dữ liệu

mysql> select * from DemoTable;
+-----------+
| ZipCode   |
+-----------+
| 52533-909 |
| 12345-674 |
| 89893-890 |
| AAAAA-783 |
+-----------+
4 rows in set (0.00 sec)

4. Cập nhật: lấy phần trước dấu '-'

mysql> update DemoTable set ZipCode = substring_index(ZipCode, '-', 1);
Query OK, 4 rows affected (0.44 sec)

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

mysql> select * from DemoTable;
+---------+
| ZipCode |
+---------+
| 52533   |
| 12345   |
| 89893   |
| AAAAA   |
+---------+
4 rows in set (0.00 sec)

Giải thích: SUBSTRING_INDEX(str, delim, count) với count = 1 trả về chuỗi con trước dấu phân cách đầu tiên.