MySQL การใช้งานฟังก์ชัน SUBSTR()

ฟังก์ชัน 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
แชร์เรื่องนี้