MariaDB में, आप SUBSTRING_INDEX()
. का उपयोग कर सकते हैं एक स्ट्रिंग में एक निश्चित वर्ण (या वर्ण) से पहले या बाद में सब कुछ वापस करने के लिए कार्य करता है।
यह फ़ंक्शन तीन तर्क स्वीकार करता है; स्ट्रिंग, सीमांकक, और उस सीमांकक की घटनाओं की संख्या का उपयोग करने के लिए सबस्ट्रिंग को वापस करने के लिए निर्धारित करने के लिए उपयोग किया जाता है।
उदाहरण
हम निम्नलिखित उदाहरणों में देख सकते हैं कि फ़ंक्शन कैसे काम करता है।
पहले सब कुछ चुनें
एक निश्चित चरित्र से पहले सब कुछ चुनने के लिए, तीसरे तर्क को सकारात्मक मान बनाएं:
SELECT SUBSTRING_INDEX('Red,Green,Blue', ',', 2);
परिणाम:
Red,Green
इस उदाहरण में, हम दूसरे कॉमा से पहले सब कुछ चुनते हैं। यह अल्पविराम (,
.) का उपयोग करके किया जाता है ) सीमांकक के रूप में, और 2
गिनती के रूप में।
मैंने उस उदाहरण में अल्पविराम का उपयोग किया था, लेकिन यह कोई भी वर्ण या स्ट्रिंग हो सकता था:
SELECT SUBSTRING_INDEX('Red or Green or Blue', ' or ', 2);
परिणाम:
Red or Green
बाद में सब कुछ चुनें
एक निश्चित वर्ण के बाद सब कुछ चुनने के लिए ऋणात्मक मान का उपयोग करें:
SELECT SUBSTRING_INDEX('Red,Green,Blue', ',', -2);
परिणाम:
Green,Blue
ध्यान दें कि ऋणात्मक मान का अर्थ है कि यह दाईं ओर से गिना जाएगा, फिर सीमांकक के दाईं ओर के विकल्प का चयन करें।
जब सीमांकक नहीं मिला
यदि स्ट्रिंग में सीमांकक नहीं मिलता है, तो स्ट्रिंग पूर्ण रूप से वापस आ जाती है।
उदाहरण:
SELECT SUBSTRING_INDEX('Red,Green,Blue', '-', 1);
परिणाम:
Red,Green,Blue
इस मामले में, पूरी स्ट्रिंग पूर्ण रूप से वापस कर दी जाती है क्योंकि हमने एक हाइफ़न (-
. का उपयोग किया था ) सीमांकक के रूप में लेकिन स्ट्रिंग में कोई हाइफ़न नहीं थे।
अगर स्ट्रिंग करती है . तो हमें वही परिणाम मिलेगा सीमांकक होते हैं, लेकिन हमारी count
स्ट्रिंग में सीमांकक की संख्या से अधिक है।
उदाहरण:
SELECT SUBSTRING_INDEX('Red,Green,Blue', ',', 10);
परिणाम:
Red,Green,Blue
केस-सेंसिटिविटी
SUBSTRING_INDEX()
फ़ंक्शन सीमांकक के लिए केस-संवेदी खोज करता है। अर्थात्, सीमांकक का मिलान होने से पहले उसका सही मामला होना चाहिए।
गलत मामला
यहां एक उदाहरण दिया गया है जहां मामला मेल नहीं खाता:
SELECT SUBSTRING_INDEX('Red and green and blue', 'AND', 2);
परिणाम:
Red and green and blue
हमें पूरी स्ट्रिंग मिलती है।
सही मामला
अब यहाँ वही उदाहरण है, लेकिन जहाँ मामला मेल खाता है:
SELECT SUBSTRING_INDEX('Red and green and blue', 'and', 2);
परिणाम:
Red and green