मारियाडीबी में, SUBSTRING_INDEX() एक अंतर्निहित स्ट्रिंग फ़ंक्शन है। यह निर्दिष्ट सीमांकक की घटनाओं की एक निश्चित संख्या से पहले एक स्ट्रिंग से एक सबस्ट्रिंग देता है।
SUBSTRING_INDEX() तीन तर्कों की आवश्यकता है; स्ट्रिंग, सीमांकक, और गिनती (यानी उस सीमांकक की घटनाओं की संख्या)।
सिंटैक्स
वाक्य रचना इस प्रकार है:
SUBSTRING_INDEX(str,delim,count)
जहां str स्ट्रिंग है, delim सीमांकक है, और count वापसी के लिए सबस्ट्रिंग का निर्धारण करने के लिए उपयोग करने के लिए उस सीमांकक की घटनाओं की संख्या है।
अगर count सकारात्मक है, अंतिम सीमांकक (बाईं ओर से गिनती) के बाईं ओर सब कुछ वापस कर दिया जाता है। अगर count ऋणात्मक है, अंतिम सीमांकक (दाईं ओर से गिनती) के दाईं ओर सब कुछ लौटा दिया जाता है।
उदाहरण
यहां एक बुनियादी उदाहरण दिया गया है:
SELECT SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', 3); परिणाम:
+-------------------------------------------------------+
| SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', 3) |
+-------------------------------------------------------+
| /users/homer |
+-------------------------------------------------------+ नकारात्मक गणना
गिनती के लिए ऋणात्मक मान निर्दिष्ट करने से यह स्ट्रिंग के अंत से पीछे की ओर गिना जाता है:
SELECT SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', -3); परिणाम:
+--------------------------------------------------------+
| SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', -3) |
+--------------------------------------------------------+
| homer/docs/cat_vids |
+--------------------------------------------------------+ डिलीमीटर नहीं मिला
यदि स्ट्रिंग में सीमांकक मौजूद नहीं है, तो पूरी स्ट्रिंग वापस आ जाती है:
SELECT SUBSTRING_INDEX('/users/homer/docs/cat_vids', '.', 3); परिणाम:
+-------------------------------------------------------+
| SUBSTRING_INDEX('/users/homer/docs/cat_vids', '.', 3) |
+-------------------------------------------------------+
| /users/homer/docs/cat_vids |
+-------------------------------------------------------+ अशक्त तर्क
यदि कोई (या सभी) तर्क null . हैं , SUBSTRING_INDEX() फ़ंक्शन रिटर्न null :
SELECT
SUBSTRING_INDEX(null, '/', 3) AS "1",
SUBSTRING_INDEX('/users/homer/docs/cat_vids', null, 3) AS "2",
SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', null) AS "3",
SUBSTRING_INDEX(null, null, null) AS "4"; परिणाम:
+------+------+------+------+ | 1 | 2 | 3 | 4 | +------+------+------+------+ | NULL | NULL | NULL | NULL | +------+------+------+------+
अनुपलब्ध तर्क
कॉलिंग SUBSTRING_INDEX() कोई तर्क पारित किए बिना त्रुटि उत्पन्न होती है:
SELECT SUBSTRING_INDEX(); परिणाम:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SUBSTRING_INDEX'