บทนำ
ฟังก์ชัน basename() ใน PHP ใช้ดึงชื่อไฟล์จากพาธเต็ม ใน MySQL สามารถทำได้ด้วยฟังก์ชัน SUBSTRING_INDEX()
ตัวอย่างการสร้างตารางและเพิ่มข้อมูล
mysql> CREATE TABLE DemoTable (
-> Location VARCHAR(200)
-> );
Query OK, 0 rows affected (1.02 sec)
mysql> INSERT INTO DemoTable VALUES('C:\\Web\\Sum.java');
mysql> INSERT INTO DemoTable VALUES('E:\\WebDevelopment\\Image1.png');
แสดงข้อมูลทั้งหมด
mysql> SELECT * FROM DemoTable;
ผลลัพธ์
+------------------------------+
| Location |
+------------------------------+
| C:\Web\Sum.java |
| E:\WebDevelopment\Image1.png |
+------------------------------+
2 rows in set (0.00 sec)
คำสั่งดึงชื่อไฟล์ (เทียบเท่า basename)
mysql> SELECT Location,
-> SUBSTRING_INDEX(Location, '\\', -1) AS NameOfFile
-> FROM DemoTable;
ผลลัพธ์
+------------------------------+------------+
| Location | NameOfFile |
+------------------------------+------------+
| C:\Web\Sum.java | Sum.java |
| E:\WebDevelopment\Image1.png | Image1.png |
+------------------------------+------------+
2 rows in set (0.00 sec)
คำอธิบาย SUBSTRING_INDEX
SUBSTRING_INDEX(str, delim, count)
str- สตริงต้นฉบับdelim- ตัวคั่น (delimiter)count- จำนวนครั้งที่เจอ delimiter: บวก = นับจากซ้าย, ลบ = นับจากขวา-1หมายถึง ส่วนหลัง delimiter ตัวสุดท้าย (ชื่อไฟล์)
สำหรับ Linux/Unix Path (ใช้ /)
SUBSTRING_INDEX(Location, '/', -1)