이해를 돕기 위해 'customerdetail'이라는 테이블의 다음 데이터를 사용하고 있습니다.
mysql> Select * from Customerdetail; +----------------------+----------------------+----------+---------------------+ | Name | FName | Address | Emailid | +----------------------+----------------------+----------+---------------------+ | Advik Jhamb | Lovkesh Jhamb | Mumbai | [email protected] | | Chirag Jai Patil | Raman Jai Patil | Gujrat | [email protected] | | Devansh Singh Rajput | Kishore Singh Rajput | Rajastan | [email protected] | | Mitul Kumar Sharma | Om Veer Sharma | Patiala | [email protected] | +----------------------+----------------------+----------+---------------------+ 4 rows in set (0.00 sec)
이제 이름을 'First_name', Middle_Name 및 'Last_name'의 세 부분으로 분할하려는 경우 다음 쿼리를 사용하여 수행할 수 있다고 가정합니다. -
mysql> 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 | +----------------------+------------+-------------+-----------+----------+ 4 rows in set (0.00 sec)
위 쿼리의 결과 집합에서 이름이 세 부분으로 분할되었음을 알 수 있습니다. 이름이 중간 이름으로 구성되지 않은 경우 중간 이름을 NULL로 간주합니다.