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