मारियाडीबी में, FIND_IN_SET()
एक अंतर्निहित स्ट्रिंग फ़ंक्शन है जो निर्दिष्ट स्ट्रिंग सूची में दिए गए पैटर्न को इंडेक्स स्थिति देता है।
यह दो तर्कों को स्वीकार करता है। पहला वह पैटर्न है जिसे आप खोजना चाहते हैं। दूसरा तर्क एक स्ट्रिंग है जिसमें अल्पविराम से अलग किए गए मान होते हैं जिसके विरुद्ध पैटर्न से मिलान करना होता है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
FIND_IN_SET(pattern, strlist)
जहां pattern
वह पैटर्न है जिसे आप खोजना चाहते हैं, और strlist
खोज के लिए अल्पविराम से अलग किए गए मानों की स्ट्रिंग का प्रतिनिधित्व करता है।
उदाहरण
यहां एक बुनियादी उदाहरण दिया गया है:
SELECT FIND_IN_SET('Green', 'Red,Green,Blue');
परिणाम:
+----------------------------------------+ | FIND_IN_SET('Green', 'Red,Green,Blue') | +----------------------------------------+ | 2 | +----------------------------------------+
इस मामले में, पैटर्न (Green
) दूसरे स्थान पर होता है, और इसलिए 2
लौटा दिया गया है।
कोई मिलान नहीं
अगर कोई मेल नहीं है, 0
लौटा दिया गया है।
उदाहरण:
SELECT FIND_IN_SET('Nope', 'Red,Green,Blue');
परिणाम:
+---------------------------------------+ | FIND_IN_SET('Nope', 'Red,Green,Blue') | +---------------------------------------+ | 0 | +---------------------------------------+
एकाधिक मिलान
यदि कई मैच हैं, तो केवल पहले वाले का सूचकांक लौटाया जाता है:
SELECT FIND_IN_SET('Dog', 'Cat,Dog,Cat,Dog,Cat');
परिणाम:
+-------------------------------------------+ | FIND_IN_SET('Dog', 'Cat,Dog,Cat,Dog,Cat') | +-------------------------------------------+ | 2 | +-------------------------------------------+
शून्य पैटर्न निर्दिष्ट करना
null
प्रदान करना पहले तर्क के रूप में null
. में परिणाम होता है लौटाया जा रहा है:
SELECT FIND_IN_SET(null, 'Cat,Dog,Cat');
परिणाम:
+----------------------------------+ | FIND_IN_SET(null, 'Cat,Dog,Cat') | +----------------------------------+ | NULL | +----------------------------------+
शून्य स्ट्रिंग सूची निर्दिष्ट करना
null
प्रदान करना जैसा कि दूसरा तर्क भी null
में परिणत होता है :
SELECT FIND_IN_SET('Dog', null);
परिणाम:
+--------------------------+ | FIND_IN_SET('Dog', null) | +--------------------------+ | NULL | +--------------------------+
रिक्त स्ट्रिंग सूची
यदि स्ट्रिंग सूची खाली है, FIND_IN_SET()
रिटर्न 0
:
SELECT FIND_IN_SET('Dog', '');
परिणाम:
+------------------------+ | FIND_IN_SET('Dog', '') | +------------------------+ | 0 | +------------------------+
पैटर्न में अल्पविराम
FIND_IN_SET()
पैटर्न में अल्पविराम होने पर सही परिणाम नहीं लौटाता:
SELECT FIND_IN_SET('Green,', 'Red,Green,Blue');
परिणाम:
+-----------------------------------------+ | FIND_IN_SET('Green,', 'Red,Green,Blue') | +-----------------------------------------+ | 0 | +-----------------------------------------+
एकल तर्क
FIND_IN_SET()
में सिर्फ एक तर्क पास करना एक त्रुटि देता है:
SELECT FIND_IN_SET('Cat');
परिणाम:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FIND_IN_SET'
अनुपलब्ध तर्क
कॉलिंग FIND_IN_SET()
कोई तर्क पारित किए बिना त्रुटि उत्पन्न होती है:
SELECT FIND_IN_SET();
परिणाम:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FIND_IN_SET'