MySQL में कई स्ट्रिंग फ़ंक्शन हैं जो एक स्ट्रिंग के भीतर एक सबस्ट्रिंग की स्थिति लौटाते हैं। अधिक विशेष रूप से, वे स्ट्रिंग के भीतर पहली घटना की स्थिति (या किसी दिए गए प्रारंभिक बिंदु के बाद पहली घटना) लौटाते हैं।
जिन कार्यों का मैं उल्लेख कर रहा हूं वे इस प्रकार हैं:
INSTR()
LOCATE()
POSITION()
नीचे प्रत्येक का एक सिंहावलोकन है।
INSTR()
INSTR()
फ़ंक्शन एक स्ट्रिंग के भीतर एक सबस्ट्रिंग की पहली घटना देता है।
यहाँ सिंटैक्स है:
INSTR(str,substr)
जहां str
वह स्ट्रिंग है जिसे आप खोजना चाहते हैं, और substr
वह सबस्ट्रिंग है जिसे आप खोज रहे हैं।
उदाहरण
SELECT INSTR('Cats and dogs like to run', 'dogs') AS Result;
परिणाम:
+--------+ | Result | +--------+ | 10 | +--------+
इस मामले में, स्ट्रिंग dogs
स्थिति 10 से शुरू होता है।
अगर सबस्ट्रिंग नहीं मिलती है, तो 0
. का नतीजा होता है लौटा दिया गया है:
SELECT INSTR('Cats and dogs like to run', 'rabbit') AS Result;
परिणाम:
+--------+ | Result | +--------+ | 0 | +--------+
LOCATE()
LOCATE()
फ़ंक्शन एक समान तरीके से काम करता है, कुछ अंतरों को छोड़कर; तर्क एक अलग क्रम में हैं, और आप यह इंगित करने के लिए एक वैकल्पिक तीसरा पैरामीटर प्रदान कर सकते हैं कि कहां खोजना शुरू करें।
इसलिए, आप इसे निम्न में से किसी एक तरीके से उपयोग कर सकते हैं:
LOCATE(substr,str) LOCATE(substr,str,pos)
पहला सिंटैक्स INTSR()
. जैसा ही है सिंटैक्स, सिवाय इसके कि str
और substr
चारों ओर अदला-बदली की जाती है।
दूसरा सिंटैक्स वैकल्पिक pos
. जोड़ता है तर्क, जो आपको खोज शुरू करने के लिए एक स्थिति निर्दिष्ट करने की अनुमति देता है।
प्रथम सिंटैक्स का उदाहरण
यहां पहले सिंटैक्स का उपयोग करने वाला एक उदाहरण दिया गया है:
SELECT LOCATE('dogs', 'Cats and dogs like to run') AS Result;
परिणाम:
+--------+ | Result | +--------+ | 10 | +--------+
दूसरे सिंटैक्स का उदाहरण
यहां एक उदाहरण दिया गया है जहां हम खोज शुरू करने के लिए एक प्रारंभिक स्थिति निर्दिष्ट करते हैं:
SELECT LOCATE('cat', 'Cats, cats, and more cats!', 6) AS Result;
परिणाम:
+--------+ | Result | +--------+ | 7 | +--------+
हम देख सकते हैं कि स्ट्रिंग cat
स्थिति 1 पर पाया जा सकता है, लेकिन हमने 6
. निर्दिष्ट किया है प्रारंभिक स्थिति के रूप में। इसलिए, उस स्ट्रिंग की अगली घटना की स्थिति वह थी जो लौटा दी गई थी।
जैसा कि INSTR()
के साथ है फ़ंक्शन, यदि सबस्ट्रिंग नहीं मिला है, 0
लौटा दिया गया है।
स्थिति()
POSITION()
फ़ंक्शन LOCATE()
. का पर्याय है , लेकिन थोड़े अलग सिंटैक्स के साथ।
यहाँ सिंटैक्स है:
POSITION(substr IN str)
यह निम्नलिखित का समानार्थी है:
LOCATE(substr,str)
इसलिए, हम पिछले उदाहरणों में से एक को इस प्रकार फिर से लिख सकते हैं:
SELECT POSITION('dogs' IN 'Cats and dogs like to run') AS Result;
परिणाम:
+--------+ | Result | +--------+ | 10 | +--------+