दुर्भाग्य से MySQL में स्प्लिट स्ट्रिंग फ़ंक्शन की सुविधा नहीं है। हालांकि आप एक उपयोगकर्ता परिभाषित फ़ंक्शन बना सकते हैं इसके लिए, जैसा कि निम्नलिखित लेख में वर्णित है:
- MySQL स्प्लिट स्ट्रिंग फंक्शन फेडरिको कारगनेलुट्टी द्वारा
उस समारोह के साथ:
DELIMITER $$
CREATE FUNCTION SPLIT_STR(
x VARCHAR(255),
delim VARCHAR(12),
pos INT
)
RETURNS VARCHAR(255) DETERMINISTIC
BEGIN
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
delim, '');
END$$
DELIMITER ;
आप अपनी क्वेरी इस प्रकार बना पाएंगे:
SELECT SPLIT_STR(membername, ' ', 1) as memberfirst,
SPLIT_STR(membername, ' ', 2) as memberlast
FROM users;
यदि आप उपयोगकर्ता परिभाषित फ़ंक्शन का उपयोग नहीं करना पसंद करते हैं और आप क्वेरी को थोड़ा अधिक वर्बोज़ मानने से गुरेज नहीं करते हैं, तो आप निम्न कार्य भी कर सकते हैं:
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(membername, ' ', 1), ' ', -1) as memberfirst,
SUBSTRING_INDEX(SUBSTRING_INDEX(membername, ' ', 2), ' ', -1) as memberlast
FROM users;