ใช้ SUBSTRING_INDEX() ด้วยตัวนับลบ เพื่อดึงข้อความหลังเครื่องหมาย slash (/) ตัวสุดท้าย
รูปแบบคำสั่ง
SELECT SUBSTRING_INDEX(yourColumnName, '/', -1) AS text_after_last_slash FROM yourTableName;
ตัวอย่าง
1. สร้างตารางและข้อมูล Path
mysql> create table selectTextAfterLastSlashDemo (
-> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> UserPathDirectory varchar(200)
-> );
mysql> insert into selectTextAfterLastSlashDemo(UserPathDirectory) values
-> ('C:/MyFolder1/MyEntityFramework'),
-> ('D:/MySpringFrameworkDemo'),
-> ('E:/Java/MyRootFolder/Source/AllHibernateDemo'),
-> ('C:/Program Files/MySQL/Server 8.0'),
-> ('C:/John/Folder1/Folder2');
2. ดึงข้อความหลัง Slash สุดท้าย
mysql> select substring_index(UserPathDirectory,'/','-1') as TextAfterLastSlash
-> from selectTextAfterLastSlashDemo;
+-----------------------+ | TextAfterLastSlash | +-----------------------+ | MyEntityFramework | | MySpringFrameworkDemo | | AllHibernateDemo | | Server 8.0 | | Folder2 | +-----------------------+
การทำงานของ SUBSTRING_INDEX(str, delim, count)
count = -1: ส่วนขวาสุดท้ายหลัง delimiter ตัวสุดท้ายcount = -2: ส่วนขวาจาก delimiter ตัวที่ 2 จากท้าย
กรณีพิเศษ
| Path | ผลลัพธ์ | หมายเหตุ |
|---|---|---|
| C:/folder/file.txt | file.txt | ปกติ |
| C:/folder/ | (ว่าง) | จบด้วย slash |
| C:/folder | folder | ไม่มี slash ท้าย |
| /etc/nginx/nginx.conf | nginx.conf | Linux path |