SUBSTRING_INDEX() और SUBSTR()/LOCATE() का उपयोग करके नाम को केवल दो भागों — पहला नाम और शेष (अंतिम नाम + मध्य नाम) — में विभाजित कर सकते हैं।
नमूना डेटा
mysql> SELECT * FROM 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 | Rajasthan | Devansh@Hotmail.com |
| Mitul Kumar Sharma | Om Veer Sharma | Patiala | Mitul@gmail.com |
+----------------------+----------------------+-----------+---------------------+
क्वेरी
mysql> 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(Name, ' ', 1)पहला शब्द देता है, बाहरीSUBSTRING_INDEX(..., ' ', -1)ट्रिमिंग के लिए (हालांकि यहां अनावश्यक है)। - Last_Name:
LOCATE(' ', Name)पहला स्पेस ढूंढता है,SUBSTRउससे आगे का भाग लेता है,TRIMअग्रणी स्पेस हटाता है। - मध्य नाम अंतिम नाम का हिस्सा बन जाता है (दूसरे उदाहरण में 'Jai Patil')।
सरल विकल्प
SELECT
SUBSTRING_INDEX(Name, ' ', 1) AS First_Name,
TRIM(SUBSTRING(Name, LOCATE(' ', Name))) AS Last_Name
FROM customerdetail;
बाहरी SUBSTRING_INDEX की आवश्यकता नहीं क्योंकि पहला शब्द पहले से ही स्पेस-रहित होता है।