आप MySQL SUBSTRING_INDEX()
. का उपयोग कर सकते हैं एक स्ट्रिंग में एक निश्चित वर्ण (या वर्ण) से पहले या बाद में सब कुछ वापस करने के लिए कार्य करता है।
यह फ़ंक्शन आपको उपयोग करने के लिए सीमांकक निर्दिष्ट करने की अनुमति देता है, और आप निर्दिष्ट कर सकते हैं कि कौन सा (यदि स्ट्रिंग में एक से अधिक है)।
सिंटैक्स
यहाँ सिंटैक्स है:
SUBSTRING_INDEX(str,delim,count)
जहां str
स्ट्रिंग है, delim
सीमांकक है (जिससे आप बाईं या दाईं ओर एक विकल्प चाहते हैं), और count
निर्दिष्ट करता है कि कौन सा सीमांकक है (यदि स्ट्रिंग में सीमांकक के कई बार होने की स्थिति में)।
ध्यान दें कि सीमांकक एकल वर्ण या एकाधिक वर्ण हो सकता है।
उदाहरण 1 - बाईं ओर सब कुछ चुनें
पहले . सब कुछ चुनने के लिए एक निश्चित वर्ण, सकारात्मक मान का उपयोग करें:
SELECT SUBSTRING_INDEX('Cats,Dogs,Rabbits', ',', 2);
परिणाम:
Cats,Dogs
इस उदाहरण में, हम दूसरे कॉमा से पहले सब कुछ चुनते हैं। यह अल्पविराम (,
.) का उपयोग करके किया जाता है ) सीमांकक के रूप में, और 2
गिनती के रूप में।
उदाहरण 2 - दाईं ओर सब कुछ चुनें
सब कुछ चुनने के लिए बाद एक निश्चित चरित्र, आपको एक नकारात्मक मान का उपयोग करने की आवश्यकता है:
SELECT SUBSTRING_INDEX('Cats,Dogs,Rabbits', ',', -2);
परिणाम:
Dogs,Rabbits
ध्यान दें कि ऋणात्मक मान का अर्थ है कि यह दाईं ओर से गिना जाएगा, फिर सीमांकक के दाईं ओर के विकल्प का चयन करें।
क्या होगा यदि सीमांकक मेल नहीं खाता?
यदि स्ट्रिंग में सीमांकक नहीं मिलता है, तो स्ट्रिंग को पूर्ण रूप से वापस कर दिया जाता है।
उदाहरण:
SELECT SUBSTRING_INDEX('Cats,Dogs,Rabbits', '-', 1);
परिणाम:
Cats,Dogs,Rabbits
इस मामले में, पूरी स्ट्रिंग पूर्ण रूप से वापस कर दी जाती है क्योंकि हमने एक हाइफ़न (-
. का उपयोग किया था ) सीमांकक के रूप में लेकिन स्ट्रिंग में कोई हाइफ़न नहीं थे।
अगर स्ट्रिंग करती है . तो हमें वही परिणाम मिलेगा सीमांकक होते हैं, लेकिन हमारी count
स्ट्रिंग में सीमांकक की संख्या से अधिक है।
उदाहरण:
SELECT SUBSTRING_INDEX('Cats,Dogs,Rabbits', ',', 10);
परिणाम:
Cats,Dogs,Rabbits
केस-सेंसिटिविटी
SUBSTRING_INDEX()
फ़ंक्शन सीमांकक के लिए केस-संवेदी खोज करता है। अर्थात्, सीमांकक का मिलान होने से पहले उसका सही मामला होना चाहिए।
गलत मामला
यहां एक उदाहरण दिया गया है जहां मामला मेल नहीं खाता:
SELECT SUBSTRING_INDEX('Cats and Dogs and Rabbits', 'AND', 2);
परिणाम:
Cats and Dogs and Rabbits
हमें पूरी स्ट्रिंग मिलती है।
सही मामला
अब यहाँ वही उदाहरण है, लेकिन जहाँ मामला मेल खाता है:
SELECT SUBSTRING_INDEX('Cats and Dogs and Rabbits', 'and', 2);
परिणाम:
Cats and Dogs