Tách lấy phần sau dấu phân cách cuối cùng trong chuỗi URL
Dùng SUBSTRING_INDEX(chuoi, dauPhanCach, -1) với count âm để lấy phần tử cuối sau dấu phân cách.
Cú pháp
SELECT SUBSTRING_INDEX(cotUrl, '/', -1) AS phanCuoi
FROM tenBang;
Ví dụ minh họa
Bảng LastIndexString:
CREATE TABLE LastIndexString (Id INT, yourURL TEXT);
INSERT INTO LastIndexString VALUES
(1, 'https://www.example.com/home.html'),
(2, 'https://exampledemo.example.com/index.jsp'),
(3, 'https://www.example.com/question/LastString');
Truy vấn lấy tên file/trang cuối:
SELECT Id, SUBSTRING_INDEX(yourURL, '/', -1) AS LastStringFromURL
FROM LastIndexString;
Kết quả
+------+-------------------+
| Id | LastStringFromURL |
+------+-------------------+
| 1 | home.html |
| 2 | index.jsp |
| 3 | LastString |
+------+-------------------+
Mở rộng: Lấy domain, path, query string
-- Lấy domain (phần sau //, trước / đầu tiên)
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(url, '//', -1), '/', 1) AS domain;
-- Lấy path (phần sau domain)
SELECT SUBSTRING_INDEX(url, '/', 3) AS protocol_domain,
SUBSTRING(url, LENGTH(SUBSTRING_INDEX(url, '/', 3)) + 1) AS path;
Với URL phức tạp, cân nhắc dùng REGEXP hoặc xử lý ở application layer.
Lưu ý
SUBSTRING_INDEXphân biệt chữ hoa/thường cho dấu phân cách.- Dấu phân cách có thể là chuỗi nhiều ký tự (ví dụ:
'::'). - Hiệu năng tốt, không dùng regex.