ฟังก์ชัน SUBSTRING() ใน MySQL ใช้เพื่อตัดข้อความย่อย (substring) ออกจากข้อความหลัก โดยระบุตำแหน่งเริ่มต้น และจำนวนอักขระที่ต้องการตัด ทำงานเหมือนกับฟังก์ชัน SUBSTR()
ประโยชน์ของฟังก์ชัน SUBSTRING()
- ใช้แยกข้อความบางส่วนออกจาก string เช่น
- ปี/เดือน/วัน จากข้อมูลวันที่
- รหัสสินค้า, หมายเลขรุ่น, คำย่อ
- เหมาะสำหรับระบบที่ต้องจัดการข้อความที่มีโครงสร้างเฉพาะ
รูปแบบการใช้งาน
SUBSTRING(str, start [, length])
หรือ
SUBSTRING(str FROM start [FOR length])
strคือข้อความต้นฉบับstartคือตำแหน่งเริ่มต้น (เริ่มนับจาก 1)- ถ้าเป็นค่าลบ เริ่มจากด้านขวาของข้อความ
length(ไม่บังคับ) คือจำนวนอักขระที่ต้องการดึง (ถ้าไม่ระบุ จะดึงจนจบข้อความ)
ตัวอย่างการใช้งาน
รูปแบบทั่วไป
SQL
SELECT SUBSTRING('MySQL Tutorial', 1, 5); -- 'MySQL'
SELECT SUBSTRING('MySQL Tutorial', 7); -- 'Tutorial'
SELECT SUBSTRING('abcdef', -3, 2); -- 'de'รูปแบบทางเลือก (SQL Standard)
SQL
SELECT SUBSTRING('MySQL Tutorial' FROM 7 FOR 5); -- 'Tutor'แยกคำขึ้นต้นของชื่อภาพยนตร์ (title)
SQL
SELECT title,
SUBSTRING(title, 1, 4) AS prefix
FROM film
LIMIT 10;แยกเดือนจากวันที่เช่า (rental_date)
SQL
SELECT rental_id,
rental_date,
SUBSTRING(rental_date, 6, 2) AS rental_month
FROM rental
LIMIT 5;- ฟิลด์
rental_dateมีรูปแบบYYYY-MM-DD HH:MM:SSดังนั้น เดือนเริ่มที่ตัวที่ 6