मारियाडीबी में, POSITION()
एक अंतर्निहित स्ट्रिंग फ़ंक्शन है जो किसी अन्य स्ट्रिंग के भीतर एक सबस्ट्रिंग की पहली घटना की स्थिति देता है। यह ओडीबीसी 3.0 का हिस्सा है।
POSITION(substr IN str)
LOCATE(substr,str)
. का पर्यायवाची है ।
POSITION()
INSTR()
. के समान है फ़ंक्शन, सिवाय इसके कि POSITION()
IN
. का उपयोग करता है वाक्यविन्यास, और तर्क क्रम इन दो कार्यों के बीच उलट है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
POSITION(substr IN str)
जहां str
स्ट्रिंग है, और substr
वह सबस्ट्रिंग है जिसके लिए स्थिति वापस करनी है।
उदाहरण
यहां एक बुनियादी उदाहरण दिया गया है:
SELECT POSITION('CUTE' IN 'My cute dog');
परिणाम:
+-----------------------------------+ | POSITION('cute' IN 'My cute dog') | +-----------------------------------+ | 4 | +-----------------------------------+
केस संवेदनशीलता
POSITION()
केस असंवेदनशील खोज करता है:
SELECT POSITION('CUTE' IN 'My cute dog');
परिणाम:
+-----------------------------------+ | POSITION('cute' IN 'My cute dog') | +-----------------------------------+ | 4 | +-----------------------------------+
एकाधिक घटनाएं
यदि सबस्ट्रिंग एक से अधिक बार आती है, तो केवल पहले वाले की स्थिति (प्रारंभिक स्थिति से) वापस आती है:
SELECT POSITION('cute' IN 'My cute dog is SOOOO cute!');
परिणाम:
+--------------------------------------------------+ | POSITION('cute' IN 'My cute dog is SOOOO cute!') | +--------------------------------------------------+ | 4 | +--------------------------------------------------+
आंशिक मिलान
अगर सबस्ट्रिंग एक बड़े शब्द का हिस्सा है, तो यह अभी भी एक मैच है:
SELECT POSITION('doggy' IN 'My dog is SOOO cute!');
परिणाम:
+---------------------------------------------+ | POSITION('dog' IN 'My doggy is SOOO cute!') | +---------------------------------------------+ | 4 | +---------------------------------------------+
लेकिन अगर स्ट्रिंग सबस्ट्रिंग का केवल एक हिस्सा है, तो यह एक मैच नहीं है:
SELECT POSITION('doggy' IN 'My dog is SOOO cute!');
परिणाम:
+---------------------------------------------+ | POSITION('doggy' IN 'My dog is SOOO cute!') | +---------------------------------------------+ | 0 | +---------------------------------------------+
रिक्त स्थान
स्पेस कैरेक्टर अभी भी एक स्ट्रिंग है, इसलिए हम सबस्ट्रिंग में स्पेस शामिल कर सकते हैं, भले ही यह एकमात्र कैरेक्टर हो:
SELECT POSITION(' ' IN 'My dog');
परिणाम:
+---------------------------+ | POSITION(' ' IN 'My dog') | +---------------------------+ | 3 | +---------------------------+
खाली स्ट्रिंग
यहाँ क्या होता है जब सबस्ट्रिंग एक खाली स्ट्रिंग होती है:
SELECT POSITION('' IN 'My dog');
परिणाम:
+--------------------------+ | POSITION('' IN 'My dog') | +--------------------------+ | 1 | +--------------------------+
कोई मिलान नहीं
यदि स्ट्रिंग में सबस्ट्रिंग नहीं मिलता है, POSITION()
रिटर्न 0
:
SELECT position('cat' IN 'My dog');
परिणाम:
+-----------------------------+ | position('cat' IN 'My dog') | +-----------------------------+ | 0 | +-----------------------------+
अशक्त तर्क
null
प्रदान करना किसी भी तर्क के लिए null
. में परिणाम मिलता है :
SELECT
POSITION(null IN 'My dog'),
POSITION('dog' IN null);
परिणाम:
+----------------------------+-------------------------+ | POSITION(null IN 'My dog') | POSITION('dog' IN null) | +----------------------------+-------------------------+ | NULL | NULL | +----------------------------+-------------------------+
तर्कों की गलत संख्या प्रदान करना
कॉलिंग POSITION()
तर्कों की गलत संख्या के साथ, या बिना कोई तर्क पारित किए त्रुटि उत्पन्न होती है:
SELECT POSITION('dog');
परिणाम:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1पर ')' के पास उपयोग करने के लिए सही सिंटैक्स के लिए अपने मारियाडीबी सर्वर संस्करण से संबंधित मैनुअल की जांच करें।