मारियाडीबी में, MAKE_SET()
एक स्ट्रिंग फ़ंक्शन है जो अपने तर्कों में दिए गए मानों के आधार पर एक सेट मान देता है।
एक सेट एक स्ट्रिंग है जिसमें अल्पविराम द्वारा अलग किए गए सबस्ट्रिंग होते हैं (,
) वर्ण।
सिंटैक्स
वाक्य रचना इस प्रकार है:
MAKE_SET(bits,str1,str2,...)
जहां str1, str2,...
एक या अधिक स्ट्रिंग मान और bits
है निर्दिष्ट करता है कि उनमें से कौन सा स्ट्रिंग मान सेट में शामिल करना है।
MAKE_SET()
bits
. में संगत बिट वाले स्ट्रिंग्स से युक्त एक सेट मान लौटाता है सेट।
उदाहरण
प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है:
SELECT MAKE_SET( 1, 'a', 'b', 'c', 'd' );
परिणाम:
+-----------------------------------+ | MAKE_SET( 1, 'a', 'b', 'c', 'd' ) | +-----------------------------------+ | a | +-----------------------------------+
ध्यान दें कि यह द्विआधारी प्रतिनिधित्व . का उपयोग करता है बाद के तर्कों में लागू स्ट्रिंग्स को वापस करने के लिए पहले तर्क का। इसलिए, यह कहना इतना आसान नहीं है, पहला तर्क 1 था और इसलिए वह आइटम 1 के अनुरूप था।
यहां एक और उदाहरण दिया गया है जो बताता है कि मेरा क्या मतलब है:
SELECT MAKE_SET( 4, 'a', 'b', 'c', 'd' );
परिणाम:
+-----------------------------------+ | MAKE_SET( 4, 'a', 'b', 'c', 'd' ) | +-----------------------------------+ | c | +-----------------------------------+
यह कैसे काम करता है
निम्नलिखित पर विचार करें:
SELECT
BIN(1) AS '1',
BIN(2) AS '2',
BIN(3) AS '3',
BIN(4) AS '4',
BIN(5) AS '5',
BIN(6) AS '6',
BIN(7) AS '7',
BIN(8) AS '8',
BIN(9) AS '9',
BIN(10) AS '10';
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
1: 1 2: 10 3: 11 4: 100 5: 101 6: 110 7: 111 8: 1000 9: 1001 10: 1010
यहां, मैं BIN()
का उपयोग करता हूं प्रत्येक संख्या के बाइनरी मान को वापस करने के लिए कार्य करता है।
हम देख सकते हैं कि 4
. का बाइनरी प्रतिनिधित्व है 100
. इसे हमारे MAKE_SET()
. पर लागू करने के लिए हमें इसे पीछे की ओर देखने की आवश्यकता है ऊपर उदाहरण। हमारे मामले में, यह तीन-अंकीय बाइनरी मान है, जिसमें पहली स्ट्रिंग के अनुरूप सबसे दाहिना अंक है, अगला अंक दूसरी स्ट्रिंग से मेल खाता है, और सबसे बायां अंक तीसरे स्ट्रिंग से मेल खाता है।
बाइनरी शब्दों में, 1
"चालू" है और 0
. है बंद है"। MAKE_SET()
फ़ंक्शन केवल उन स्ट्रिंग्स को लौटाता है जिनमें संबंधित 1
. होता है उनके द्विआधारी मूल्य में। इसलिए, ऊपर दिया गया हमारा उदाहरण तीसरी स्ट्रिंग लौटाता है।
भिन्न मान का उपयोग करते हुए एक और उदाहरण यहां दिया गया है:
SELECT MAKE_SET(10, 'a','b','c','d');
परिणाम:
+-------------------------------+ | MAKE_SET(10, 'a','b','c','d') | +-------------------------------+ | b,d | +-------------------------------+
इस मामले में, बाइनरी मान 1010
. है . इसलिए इसमें दो 1
हैं s, जो दूसरे और चौथे स्ट्रिंग तर्कों के अनुरूप है।
अवधारणा को और अधिक प्रदर्शित करने के लिए यहां कुछ और उदाहरण दिए गए हैं:
SELECT
MAKE_SET(1, 'a','b','c','d') AS '1',
MAKE_SET(2, 'a','b','c','d') AS '2',
MAKE_SET(3, 'a','b','c','d') AS '3',
MAKE_SET(4, 'a','b','c','d') AS '4',
MAKE_SET(5, 'a','b','c','d') AS '5',
MAKE_SET(6, 'a','b','c','d') AS '6',
MAKE_SET(7, 'a','b','c','d') AS '7',
MAKE_SET(8, 'a','b','c','d') AS '8',
MAKE_SET(9, 'a','b','c','d') AS '9',
MAKE_SET(10, 'a','b','c','d') AS '10';
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
1: a 2: b 3: a,b 4: c 5: a,c 6: b,c 7: a,b,c 8: d 9: a,d 10: b,d
स्ट्रिंग्स के भिन्न सेट का उपयोग करते हुए एक उदाहरण यहां दिया गया है:
SELECT MAKE_SET(3, 'Cat','Bat','Rat');
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
+--------------------------------+ | MAKE_SET(3, 'Cat','Bat','Rat') | +--------------------------------+ | Cat,Bat | +--------------------------------+
एकाधिक बाइनरी मान
पाइप चिह्न का उपयोग करें (|
) सेट में एक से अधिक मान शामिल करने के लिए:
SELECT MAKE_SET( 1 | 4, 'Cat', 'Bat', 'Rat' );
परिणाम:
+----------------------------------------+ | MAKE_SET( 1 | 4, 'Cat', 'Bat', 'Rat' ) | +----------------------------------------+ | Cat,Rat | +----------------------------------------+
शून्य मान
यदि कोई स्ट्रिंग मान null
है , तो इसे परिणाम से हटा दिया जाता है:
SELECT MAKE_SET( 1 | 3, 'Cat', null, 'Rat' );
परिणाम:
+---------------------------------------+ | MAKE_SET( 1 | 3, 'Cat', null, 'Rat' ) | +---------------------------------------+ | Cat | +---------------------------------------+