Devdit
 

SQL แยกชื่อ นามสกุล เป็นคนละ column ด้วย SUBSTRING_INDEX

4.6K

สอนเขียนคำสั่ง 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

แก้ไข 2 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ