Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ดึงข้อความหลังจุดสุดท้ายใน MySQL ด้วย SUBSTRING_INDEX

เมื่อต้องการดึงส่วนของสตริงที่อยู่หลังจุด (.) ตัวสุดท้าย เช่น ดึง 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) = ส่วนตั้งแต่ต้นจนถึงจุดที่ 2
  • SUBSTRING_INDEX(str, '.', -2) = ส่วนหลังจุดสุดท้ายที่ 2 (นับจากขวา)

ฟังก์ชันนี้มีประสิทธิภาพดีและรองรับหลายภาษา/ตัวอักษรได้ดี