Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MAKE_SET () फ़ंक्शन MySQL में कैसे काम करता है

MySQL में, MAKE_SET() फ़ंक्शन एक सेट मान देता है (, . द्वारा अलग किए गए सबस्ट्रिंग युक्त एक स्ट्रिंग वर्ण) जब आप फ़ंक्शन को कॉल करते हैं तो तर्क के रूप में निर्दिष्ट वर्ण होते हैं।

जब आप फ़ंक्शन को कॉल करते हैं, तो आप किसी भी संख्या में स्ट्रिंग्स (अल्पविराम से अलग), साथ ही एक या अधिक बिट मान निर्दिष्ट करते हैं जो निर्धारित करते हैं कि सेट मान में कौन से स्ट्रिंग्स वापस आना है।

सिंटैक्स

वाक्य रचना इस प्रकार है:

MAKE_SET(bits,str1,str2,...)

उदाहरण

यहां एक बुनियादी उदाहरण दिया गया है:

SELECT MAKE_SET(1, 'a','b','c','d') Result;

परिणाम:

+--------+
| Result |
+--------+
| a      |
+--------+

यह परिणाम पहली बार में स्पष्ट लग सकता है। आखिरकार, हमारा पहला तर्क 1 है , और फ़ंक्शन पहली स्ट्रिंग देता है।

हालाँकि, यह बिल्कुल नहीं है कि यह कैसे काम करता है।

यहाँ एक और उदाहरण है।

SELECT MAKE_SET(4, 'a','b','c','d') Result;

परिणाम:

+--------+
| Result |
+--------+
| c      |
+--------+

ध्यान दें कि यह तीसरी स्ट्रिंग लौटाता है, भले ही हमने 4 . निर्दिष्ट किया हो पहले तर्क के रूप में?

ऐसा इसलिए है क्योंकि MAKE_SET() फ़ंक्शन बाइनरी प्रतिनिधित्व . का उपयोग करता है बाद के तर्कों में लागू स्ट्रिंग्स को वापस करने के लिए पहले तर्क का।

मेरा क्या मतलब है यह देखने के लिए निम्नलिखित कोड उदाहरण देखें:

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    | 2    | 3    | 4    | 5    | 6    | 7    | 8    | 9    | 10   |
+------+------+------+------+------+------+------+------+------+------+
| 1    | 10   | 11   | 100  | 101  | 110  | 111  | 1000 | 1001 | 1010 |
+------+------+------+------+------+------+------+------+------+------+

यहां, मैं BIN() का उपयोग करता हूं प्रत्येक संख्या के बाइनरी मान को वापस करने के लिए कार्य करता है।

हम देख सकते हैं कि 4 . का बाइनरी प्रतिनिधित्व है 100 . इसे हमारे MAKE_SET() . पर लागू करने के लिए हमें इसे पीछे की ओर देखने की आवश्यकता है ऊपर उदाहरण। हमारे मामले में, यह तीन अंकों का बाइनरी मान है, जिसमें पहली स्ट्रिंग के अनुरूप सबसे दायां अंक होता है, अगला अंक दूसरी स्ट्रिंग से मेल खाता है, और बाएं अंक तीसरे स्ट्रिंग से मेल खाता है।

बाइनरी शब्दों में, 1 "चालू" है और 0 . है बंद है"। MAKE_SET() फ़ंक्शन केवल उन स्ट्रिंग्स को लौटाता है जिनमें संबंधित 1 . होता है उनके द्विआधारी मूल्य में। इसलिए, ऊपर दिया गया हमारा उदाहरण तीसरी स्ट्रिंग लौटाता है।

भिन्न मान का उपयोग करते हुए एक और उदाहरण यहां दिया गया है:

SELECT MAKE_SET(10, 'a','b','c','d') Result;

परिणाम:

+--------+
| Result |
+--------+
| 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 | 2 | 3   | 4 | 5   | 6   | 7     | 8 | 9   | 10  |
+---+---+-----+---+-----+-----+-------+---+-----+-----+
| a | b | a,b | c | a,c | b,c | a,b,c | d | a,d | b,d |
+---+---+-----+---+-----+-----+-------+---+-----+-----+

और यहां स्ट्रिंग्स के भिन्न सेट का उपयोग करते हुए एक उदाहरण दिया गया है:

SELECT MAKE_SET(5, 'Cat','Dog','Horse','Duck') Result;

परिणाम:

+-----------+
| Result    |
+-----------+
| Cat,Horse |
+-----------+

एकाधिक बाइनरी मान

पहले तर्क में एकाधिक बाइनरी मानों को पास करने के लिए आप एक पाइप का उपयोग कर सकते हैं:

SELECT MAKE_SET(1 | 4, 'a','b','c','d') Result;

परिणाम:

+--------+
| Result |
+--------+
| a,c    |
+--------+

ध्यान दें कि यदि आप पहले तर्क में बाइनरी मानों को उलट देते हैं तो आपको वही परिणाम मिलेगा:

SELECT MAKE_SET(4 | 1, 'a','b','c','d') Result;

परिणाम:

+--------+
| Result |
+--------+
| a,c    |
+--------+

शून्य मान

परिणाम में NULL मान वाले किसी भी तार को जोड़ा नहीं जाता है।

उदाहरण:

SELECT MAKE_SET(1 | 4, 'a','b',NULL,'d') Result;

परिणाम:

+--------+
| Result |
+--------+
| a      |
+--------+


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ClusterControl के साथ अपने MySQL बैकअप को कैसे सत्यापित करें

  2. MySQL में डुप्लीकेट रिकॉर्ड डालने से कैसे बचें?

  3. WEEKOFYEAR () उदाहरण – MySQL

  4. MySQL बड़े डेटाबेस से डुप्लिकेट को जल्दी से हटा देता है

  5. MySQL में संग्रहित प्रक्रिया को कैसे हटाएं