ข้อมูลตัวอย่าง: ตาราง customerdetail
+----------------------+----------------------+----------+---------------------+
| Name | FName | Address | Emailid |
+----------------------+----------------------+----------+---------------------+
| Advik Jhamb | Lovkesh Jhamb | Mumbai | Advik@gmail.com |
| Chirag Jai Patil | Raman Jai Patil | Gujrat | chirahp@yahoo.com |
| Devansh Singh Rajput | Kishore Singh Rajput | Rajastan | Devansh@Hotmail.com |
| Mitul Kumar Sharma | Om Veer Sharma | Patiala | Mitul@gmail.com |
+----------------------+----------------------+----------+---------------------+
คำสั่ง SQL แยก 3 ส่วน
SELECT
Name,
SUBSTRING_INDEX(SUBSTRING_INDEX(Name, ' ', 1), ' ', -1) AS First_Name,
IF(LENGTH(Name) - LENGTH(REPLACE(Name, ' ', '')) > 1,
SUBSTRING_INDEX(SUBSTRING_INDEX(Name, ' ', 2), ' ', -1),
NULL) AS Middle_Name,
SUBSTRING_INDEX(SUBSTRING_INDEX(Name, ' ', 3), ' ', -1) AS Last_Name,
Address
FROM customerdetail;
ผลลัพธ์
+----------------------+------------+-------------+-----------+----------+
| Name | First_Name | Middle_Name | Last_Name | Address |
+----------------------+------------+-------------+-----------+----------+
| Advik Jhamb | Advik | NULL | Jhamb | Mumbai |
| Chirag Jai Patil | Chirag | Jai | Patil | Gujrat |
| Devansh Singh Rajput | Devansh | Singh | Rajput | Rajastan |
| Mitul Kumar Sharma | Mitul | Kumar | Sharma | Patiala |
+----------------------+------------+-------------+-----------+----------+
การอธิบาย
- First_Name: SUBSTRING_INDEX สองชั้น นับ space ตัวแรก
- Middle_Name: IF ตรวจว่ามี space มากกว่า 1 ครั้ง ถ้ามี 취ส่วนกลาง
- Last_Name: ส่วนหลัง space ตัวที่ 3 (หรือตัวสุดท้าย)
- ชื่อที่ไม่มี Middle name จะได้ NULL