PHP có basename() để lấy tên tệp từ đường dẫn. Trong MySQL, dùng SUBSTRING_INDEX() với ký tự phân cách đường dẫn.
Ví dụ minh họa
Tạo bảng:
mysql> CREATE TABLE DemoTable (
Location VARCHAR(200)
);
Chèn đường dẫn Windows (dùng backslash):
mysql> INSERT INTO DemoTable VALUES('C:\\Web\\Sum.java');
mysql> INSERT INTO DemoTable VALUES('E:\\WebDevelopment\\Image1.png');
Xem dữ liệu:
mysql> SELECT * FROM DemoTable;
Kết quả
+------------------------------+ | Location | +------------------------------+ | C:\Web\Sum.java | | E:\WebDevelopment\Image1.png | +------------------------------+
Lấy tên tệp (phần sau backslash cuối cùng):
mysql> SELECT Location,
-> SUBSTRING_INDEX(Location, '\\', -1) AS NameOfFile
-> FROM DemoTable;
Kết quả
+------------------------------+------------+ | Location | NameOfFile | +------------------------------+------------+ | C:\Web\Sum.java | Sum.java | | E:\WebDevelopment\Image1.png | Image1.png | +------------------------------+------------+
Giải thích: SUBSTRING_INDEX(str, delim, count) với count âm trả về phần chuỗi sau lần xuất hiện thứ |count| của delim tính từ cuối. Với đường dẫn Linux/Mac, dùng '/' làm phân cách.