สามารถใช้ฟังก์ชัน MySQL SUBSTRING() เพื่อแยกสตริงย่อยออกจากสตริงได้ โดยทั่วไป SUBSTRING() จะส่งคืนสตริงย่อยที่มีความยาวที่กำหนดจากสตริงที่เริ่มต้นที่ตำแหน่งเฉพาะ มีรูปแบบต่างๆ ดังนี้ −
- SUBSTRING(str,pos)
- SUBSTRING(str จากตำแหน่ง)
- SUBSTRING(str,pos,len)
- SUBSTRING(str จาก pos สำหรับ len)
รูปแบบที่ไม่มีอาร์กิวเมนต์ len ส่งคืนสตริงย่อยจากสตริง str เริ่มต้นที่ตำแหน่ง pos แบบฟอร์มที่มีอาร์กิวเมนต์ len จะส่งกลับสตริงย่อย len อักขระที่ยาวจากสตริง str เริ่มต้นที่ตำแหน่ง pos รูปแบบที่ใช้ FROM เป็นไวยากรณ์ MySQL มาตรฐาน นอกจากนี้ยังสามารถใช้ค่าลบสำหรับ pos ในกรณีนี้ จุดเริ่มต้นของสตริงย่อยคืออักขระ pos จากจุดสิ้นสุดของสตริง แทนที่จะเป็นจุดเริ่มต้น ค่าลบสามารถใช้สำหรับ pos ในรูปแบบใดก็ได้ของฟังก์ชันนี้
mysql> SELECT SUBSTRING('Quadratically',5); +---------------------------------------------------------+ | SSUBSTRING('Quadratically',5) | +---------------------------------------------------------+ | ratically | +---------------------------------------------------------+ 1 row in set (0.00 sec) mysql> SELECT SUBSTRING('foobarbar' FROM 4); +---------------------------------------------------------+ | SUBSTRING('foobarbar' FROM 4) | +---------------------------------------------------------+ | barbar | +---------------------------------------------------------+ 1 row in set (0.00 sec) mysql> SELECT SUBSTRING('Quadratically',5,6); +---------------------------------------------------------+ | SUBSTRING('Quadratically',5,6) | +---------------------------------------------------------+ | ratica | +---------------------------------------------------------+ 1 row in set (0.00 sec) mysql> Select SUBSTRING('foobarbar',-4); +---------------------------+ | SUBSTRING('foobarbar',-4) | +---------------------------+ | rbar | +---------------------------+ 1 row in set (0.05 sec)
นอกเหนือจากฟังก์ชัน SUBSTRING() แล้ว ฟังก์ชัน MID() และ SUBSTR() ยังใช้เพื่อแยกสตริงย่อยออกจากสตริง ทั้งสองเป็นคำพ้องความหมายของฟังก์ชัน SUBSTRING()