ใช้ SUBSTRING_INDEX(column, delimiter, -1) เพื่อดึงส่วนหลังตัวคั่นตัวสุดท้าย
ไวยากรณ์
SELECT SUBSTRING_INDEX(yourColumnName, '-', -1) AS alias_name FROM yourTableName;
พารามิเตอร์ -1: นับจากขวาสุด 1 ส่วน (คือส่วนหลังตัวคั่นตัวสุดท้าย)
ตัวอย่างการใช้งาน
1. สร้างตารางที่มีที่อยู่คั่นด้วย -
mysql> create table DemoTable (StreetName text);
mysql> insert into DemoTable values('Paris Hill St.-CA-83745646'), ('502 South Armstrong Street-9948443');
2. แยกส่วนหลัง - ตัวสุดท้าย (รหัสไปรษณีย์)
mysql> select substring_index(StreetName, '-', -1) AS Split from DemoTable;
ผลลัพธ์
+----------+ | Split | +----------+ | 83745646 | | 9948443 | +----------+
ฟังก์ชันแยกสตริงที่เกี่ยวข้อง
| ฟังก์ชัน | การใช้งาน | ตัวอย่าง |
|---|---|---|
SUBSTRING_INDEX(str, delim, count) | ส่วนก่อน/หลัง ตัวคั่น ครั้งที่ N | SUBSTRING_INDEX('a-b-c', '-', -1) → 'c' |
SUBSTRING(str, pos, len) | ส่วนย่อยจากตำแหน่ง pos ความยาว len | SUBSTRING('abcde', 2, 3) → 'bcd' |
LEFT(str, len) | ตัวอักษรซ้ายสุด len ตัว | LEFT('abcde', 2) → 'ab' |
RIGHT(str, len) | ตัวอักษรขวาสุด len ตัว | RIGHT('abcde', 2) → 'de' |
แยกหลายส่วนพร้อมกัน
SELECT
SUBSTRING_INDEX(StreetName, '-', 1) AS part1,
SUBSTRING_INDEX(SUBSTRING_INDEX(StreetName, '-', 2), '-', -1) AS part2,
SUBSTRING_INDEX(StreetName, '-', -1) AS part3
FROM DemoTable;