Dùng SUBSTRING_INDEX() lồng nhau để cắt chuỗi theo phân cách. Ví dụ lấy đoạn giữa hai dấu /.
Ví dụ minh họa
Tạo bảng:
mysql> CREATE TABLE DemoTable (Code VARCHAR(100));
Chèn dữ liệu:
mysql> INSERT INTO DemoTable VALUES('/101/102/106');
mysql> INSERT INTO DemoTable VALUES('/110/111/101');
mysql> INSERT INTO DemoTable VALUES('/111/114/201');
Xem dữ liệu:
mysql> SELECT * FROM DemoTable;
Kết quả
+--------------+ | Code | +--------------+ | /101/102/106 | | /110/111/101 | | /111/114/201 | +--------------+
Lấy đoạn thứ 3 (tính từ trái, sau dấu / thứ 2):
mysql> SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(Code, '/', 3), '/', -1) FROM DemoTable;
Kết quả
+-----------------------------------------------------+ | SUBSTRING_INDEX(SUBSTRING_INDEX(Code,'/',3), '/',-1) | +-----------------------------------------------------+ | 102 | | 111 | | 114 | +-----------------------------------------------------+
Giải thích:
SUBSTRING_INDEX(Code, '/', 3)lấy từ đầu đến dấu/thứ 3:/101/102SUBSTRING_INDEX(..., '/', -1)lấy phần sau dấu/cuối cùng của kết quả trên:102