Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

แยกชื่อเป็น 2 ส่วน (First, Last) ด้วย SUBSTRING_INDEX

แยกชื่อแค่ First และ Last Name

Middle name จะรวมอยู่ใน Last name

ข้อมูลตัวอย่าง

+----------------------+----------------------+-----------+---------------------+
| 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 | Rajasthan | Devansh@Hotmail.com |
| Mitul Kumar Sharma   | Om Veer Sharma       | Patiala   | Mitul@gmail.com     |
+----------------------+----------------------+-----------+---------------------+

คำสั่ง SQL

SELECT 
    SUBSTRING_INDEX(SUBSTRING_INDEX(Name, ' ', 1), ' ', -1) AS First_Name,
    TRIM(SUBSTR(Name, LOCATE(' ', Name))) AS Last_Name
FROM Customerdetail;

ผลลัพธ์

+------------+--------------+
| First_Name | Last_Name    |
+------------+--------------+
| Advik      | Jhamb        |
| Chirag     | Jai Patil    |
| Devansh    | Singh Rajput |
| Mitul      | Kumar Sharma |
+------------+--------------+

การอธิบาย

  • First_Name: SUBSTRING_INDEX สองชั้น ดึงคำแรก
  • Last_Name: LOCATE หา space แรก SUBSTR ตัดจากนั้นไปจนจบ TRIM ตัด space นำหน้า
  • Middle name รวมอยู่ใน Last name (เหมาะกับชื่อไทย/ตะวันตกที่มี 2-3 ส่วน)