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

Tương đương hàm basename() của PHP trong MySQL

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.