สอนเขียนคำสั่ง SQL แยกชื่อ นามสกุล เป็นคนละ column ด้วยคำสั่ง SUBSTRING_INDEX โดยคำสั่งนี้รับค่า arguments 3 ค่า คือ column ที่ต้องการแยก, ตัวคั่นที่ใช้ในการแยก และตัวเลขที่สถานะการแยก column สามารถเขียนคำสั่งได้ดังนี้
ตัวอย่าง ข้อมูลเริ่มต้น ชื่อ และนามสกุล อยู่ใน column fullName
+-----------------+
| fullName |
+-----------------+
| Somchai Lampang |
| Somying Lamphun |
+-----------------+
ตัวอย่าง SQL แยกชื่อ นามสกุล เป็นคนละ column ด้วย SUBSTRING_INDEX
SELECT SUBSTRING_INDEX( fullName, ' ', 1 ) AS firstName, SUBSTRING_INDEX( fullName, ' ', -1 ) AS lastName FROM student;
ผลลัพธ์
+-----------+----------+
| firstName | lastName |
+-----------+----------+
| Somchai | Lampang |
| Somying | Lamphun |
+-----------+----------+
2 rows in set (0.001 sec)
1. ใช้คำสั่ง SUBSTRING_INDEX( fullName, ' ', 1 ) AS firstName หมายความว่า แยก column fullName ด้วยช่องว่าง โดยเลข 1 หมายถึงดึงข้อมูลก่อนพบตัวคั่น คือ ช่องว่าง และตั้งชื่อ column ว่า firstName
2. ใช้คำสั่ง SUBSTRING_INDEX( fullName, ' ', -1 ) AS lastName หมายความว่า แยก column fullName ด้วยช่องว่าง โดยเลข -1 หมายถึงดึงข้อมูลหลังพบตัวคั่น คือ ช่องว่าง และตั้งชื่อ column ว่า lastName