เมื่อต้องการดึงส่วนของสตริงที่อยู่หลังจุด (.) ตัวสุดท้าย เช่น ดึง domain extension จาก email หรือไฟล์ extension ให้ใช้ SUBSTRING_INDEX() กับค่า count เป็นลบ
รูปแบบคำสั่ง
SUBSTRING_INDEX(column, '.', -1)
-1 หมายถึงนับจากด้านขวาสุด (หลัง delimiter ตัวสุดท้าย)
ตัวอย่างการใช้งาน
สร้างตารางและเพิ่มข้อมูล:
mysql> create table DemoTable1341 (Value varchar(60));
mysql> insert into DemoTable1341 values('John.123.@gmail.com');
mysql> insert into DemoTable1341 values('Carol.Taylor.gmail');
mysql> insert into DemoTable1341 values('C.MyFolder.Location');
ข้อมูลต้นฉบับ:
+---------------------+ | Value | +---------------------+ | John.123.@gmail.com | | Carol.Taylor.gmail | | C.MyFolder.Location | +---------------------+
คำสั่งดึงส่วนหลังจุดสุดท้าย
mysql> select substring_index(Value, '.', -1) from DemoTable1341;
ผลลัพธ์
+---------------------------------+ | substring_index(Value, '.', -1) | +---------------------------------+ | com | | gmail | | Location | +---------------------------------+
การใช้งานเพิ่มเติม:
SUBSTRING_INDEX(str, '.', 1)= ส่วนก่อนจุดแรกSUBSTRING_INDEX(str, '.', 2)= ส่วนตั้งแต่ต้นจนถึงจุดที่ 2SUBSTRING_INDEX(str, '.', -2)= ส่วนหลังจุดสุดท้ายที่ 2 (นับจากขวา)
ฟังก์ชันนี้มีประสิทธิภาพดีและรองรับหลายภาษา/ตัวอักษรได้ดี