ใช้ฟังก์ชัน SUBSTRING_INDEX() ดึงข้อความหลังจุด (.) ตัวสุดท้าย เพื่อได้นามสกุลไฟล์
รูปแบบคำสั่ง
SELECT SUBSTRING_INDEX(yourColumnName, '.', -1) AS extension FROM yourTableName;
ตัวอย่าง
1. สร้างตารางและข้อมูล
mysql> create table AllFiles (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> UserName varchar(10),
-> FileName varchar(100)
-> );
mysql> insert into AllFiles(UserName,FileName) values
-> ('Larry','AddTwoNumber.java'),
-> ('Mike','AddTwoNumber.python'),
-> ('Sam','MatrixMultiplication.c'),
-> ('Carol','vector.cpp');
2. ดึงนามสกุลไฟล์
mysql> select substring_index(FileName,'.',-1) AS ALLFILENAMEEXTENSIONS from AllFiles;
+-----------------------+ | ALLFILENAMEEXTENSIONS | +-----------------------+ | java | | python | | c | | cpp | +-----------------------+
การทำงานของ SUBSTRING_INDEX(str, delim, count)
count > 0: คืนค่าส่วนซ้ายของ delimiter ตัวที่ countcount < 0: คืนค่าส่วนขวาของ delimiter ตัวที่ |count| นับจากขวาSUBSTRING_INDEX('file.name.txt', '.', -1)→ 'txt'
กรณีพิเศษและการจัดการ
| ชื่อไฟล์ | ผลลัพธ์ | หมายเหตุ |
|---|---|---|
| document.pdf | ปกติ | |
| .htaccess | htaccess | ไม่มีชื่อไฟล์ มีแค่นามสกุล |
| README | README | ไม่มีจุด คืนทั้งสตริง |
| archive.tar.gz | gz | ดึงเฉพาะส่วนท้ายสุด |