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

ใช้ SUBSTRING_INDEX 巢狀 ดึงข้อความระหว่าง delimiter เดียวกัน 2 ตัว

Nested SUBSTRING_INDEX

ดึงส่วนที่อยู่ ระหว่าง delimiter ตัวที่ 1 และ 2 (นับจากซ้าย)

ตัวอย่าง: ดึง 'tutorialspoint' จาก 'www.tutorialspoint.com'

mysql> SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('www.tutorialspoint.com', '.', 2), '.', -1) 
       AS 'Nested SUBSTRING_INDEX';
+------------------------+
| Nested SUBSTRING_INDEX |
+------------------------+
| tutorialspoint         |
+------------------------+

การทำงานทีละขั้น

  1. SUBSTRING_INDEX('www.tutorialspoint.com', '.', 2) → 'www.tutorialspoint' (ส่วนก่อน '.' ตัวที่ 2)
  2. SUBSTRING_INDEX('www.tutorialspoint', '.', -1) → 'tutorialspoint' (ส่วนหลัง '.' ตัวสุดท้าย)

สูตรทั่วไป

-- ระหว่าง delimiter ตัวที่ N และ N+1
SUBSTRING_INDEX(SUBSTRING_INDEX(str, delim, N+1), delim, -1)

ประยุกต์ใช้

  • แยกโดเมนจาก URL
  • แยกค่าระหว่าง comma ใน CSV
  • Parse path ไฟล์