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

แยกข้อความหลังตัวอักษรเฉพาะในคอลัมน์ MySQL

ใช้ 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)ส่วนก่อน/หลัง ตัวคั่น ครั้งที่ NSUBSTRING_INDEX('a-b-c', '-', -1) → 'c'
SUBSTRING(str, pos, len)ส่วนย่อยจากตำแหน่ง pos ความยาว lenSUBSTRING('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;