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

Cách trích xuất mã vùng từ số điện thoại bằng MySQL

Giả sử chúng ta có một danh sách các số điện thoại và muốn lấy mã vùng từ chúng. Mã vùng thường là 3 chữ số đầu tiên của số điện thoại. Chúng ta có thể sử dụng hàm LEFT() trong MySQL để thực hiện việc này.

Tạo bảng và chèn dữ liệu mẫu

Trước tiên, tạo một bảng tên DemoTable:

mysql> CREATE TABLE DemoTable (
    -> AreaCodes VARCHAR(100)
    -> );
Query OK, 0 rows affected (0.62 sec)

Chèn một số bản ghi số điện thoại vào bảng:

mysql> INSERT INTO DemoTable VALUES('90387568976');
Query OK, 1 row affected (0.20 sec)
mysql> INSERT INTO DemoTable VALUES('90389097878');
Query OK, 1 row affected (0.23 sec)
mysql> INSERT INTO DemoTable VALUES('56789008799');
Query OK, 1 row affected (0.10 sec)
mysql> INSERT INTO DemoTable VALUES('45679008571');
Query OK, 1 row affected (0.23 sec)
mysql> INSERT INTO DemoTable VALUES('45679008536');
Query OK, 1 row affected (0.12 sec)

Hiển thị tất cả bản ghi

mysql> SELECT * FROM DemoTable;

Kết quả:

+-------------+
| AreaCodes   |
+-------------+
| 90387568976 |
| 90389097878 |
| 56789008799 |
| 45679008571 |
| 45679008536 |
+-------------+
5 rows in set (0.00 sec)

Truy vấn lấy mã vùng (4 chữ số đầu)

Sử dụng LEFT(AreaCodes, 4) để lấy 4 ký tự đầu tiên và DISTINCT để loại bỏ trùng lặp:

mysql> SELECT DISTINCT LEFT(AreaCodes, 4) FROM DemoTable;

Kết quả:

+-------------------+
| LEFT(AreaCodes,4) |
+-------------------+
| 9038              |
| 5678              |
| 4567              |
+-------------------+
3 rows in set (0.13 sec)

Lưu ý: Ví dụ này lấy 4 chữ số đầu thay vì 3 như mô tả ban đầu. Để lấy đúng 3 chữ số mã vùng, hãy thay đổi thành LEFT(AreaCodes, 3).