यदि आपको मारियाडीबी में किसी अन्य स्ट्रिंग के साथ एक सबस्ट्रिंग को बदलने की आवश्यकता है, तो यहां दो दृष्टिकोण हैं जिनका आप उपयोग कर सकते हैं।
REPLACE()
समारोह
मारियाडीबी में, REPLACE()
फ़ंक्शन को विशेष रूप से किसी अन्य स्ट्रिंग के भीतर एक सबस्ट्रिंग को बदलने के लिए डिज़ाइन किया गया है।
फ़ंक्शन को कॉल करते समय आप तीन तर्क प्रदान करते हैं। ये स्ट्रिंग, सबस्ट्रिंग और प्रतिस्थापन स्ट्रिंग हैं।
उदाहरण:
SELECT REPLACE('My dog likes to dig holes', 'dog', 'cat');
परिणाम:
+----------------------------------------------------+ | REPLACE('My dog likes to dig holes', 'dog', 'cat') | +----------------------------------------------------+ | My cat likes to dig holes | +----------------------------------------------------+
इस मामले में हमने सबस्ट्रिंग dog
. को बदल दिया है cat
. के साथ ।
यदि प्रतिस्थापित किया जाने वाला स्ट्रिंग स्ट्रिंग के भीतर कई बार होता है, तो सभी आवृत्तियों को बदल दिया जाता है:
SELECT REPLACE('Black dogs and white dogs', 'dog', 'cat');
परिणाम:
+----------------------------------------------------+ | REPLACE('Black dogs and white dogs', 'dog', 'cat') | +----------------------------------------------------+ | Black cats and white cats | +----------------------------------------------------+
REPLACE()
फ़ंक्शन केस-संवेदी मिलान करता है।
देखें कैसे REPLACE()
अधिक उदाहरणों के लिए मारियाडीबी में काम करता है।
द REGEXP_REPLACE()
समारोह
REGEXP_REPLACE()
फ़ंक्शन REPLACE()
के समान है फ़ंक्शन, सिवाय इसके कि यह आपको नियमित अभिव्यक्तियों का उपयोग करके पैटर्न मिलान करने की अनुमति देता है।
यह REGEXP_REPLACE()
बनाता है REPLACE()
. से अधिक शक्तिशाली , जैसा कि आप उन सबस्ट्रिंग को बदलने के लिए स्ट्रिंग के कुछ हिस्सों के विरुद्ध मिलान कर सकते हैं जो केवल REPLACE()
का उपयोग करते समय मिलान करना कठिन या असंभव होगा ।
उदाहरण:
SELECT REGEXP_REPLACE('My cat has cuts', 'c.t', 'dog');
परिणाम:
+-------------------------------------------------+ | REGEXP_REPLACE('My cat has cuts', 'c.t', 'dog') | +-------------------------------------------------+ | My dog has dogs | +-------------------------------------------------+
नियमित अभिव्यक्ति बहुत शक्तिशाली हो सकती है, और यह उदाहरण एक बहुत ही सरल उदाहरण का उपयोग करता है। REGEXP_REPLACE()
use का उपयोग करने के लिए प्रभावी ढंग से, आपको वांछित परिणाम के लिए उपयोग करने के लिए सही पैटर्न जानने की आवश्यकता होगी।
पैटर्न के रूप में पूर्ण शाब्दिक स्ट्रिंग प्रदान करना भी संभव है, ठीक उसी तरह जैसे आप REPLACE()
के साथ उपयोग करते हैं समारोह।
इसलिए, हम REGEXP_REPLACE()
का उपयोग करने के लिए इस पृष्ठ पर पहला उदाहरण फिर से लिख सकते हैं REPLACE()
. के बजाय .
यहां एक उदाहरण दिया गया है जो मेरे मतलब को स्पष्ट करने के लिए उन्हें साथ-साथ चलाता है:
SELECT
REPLACE('My dog likes to dig holes', 'dog', 'cat') AS "REPLACE()",
REGEXP_REPLACE('My dog likes to dig holes', 'dog', 'cat') AS "REGEXP_REPLACE()";
परिणाम:
+---------------------------+---------------------------+ | REPLACE() | REGEXP_REPLACE() | +---------------------------+---------------------------+ | My cat likes to dig holes | My cat likes to dig holes | +---------------------------+---------------------------+
साथ ही, REGEXP_REPLACE()
फ़ंक्शन प्रभावी संयोजन के केस संवेदनशीलता नियमों का पालन करता है। केस असंवेदनशील कॉलेशन के लिए केस असंवेदनशील रूप से मिलान किया जाता है, और केस संवेदनशील कॉलेशन के लिए केस संवेदनशील रूप से और बाइनरी डेटा के लिए किया जाता है। हालांकि, कोलेशन केस संवेदनशीलता को (?i
. का उपयोग करके ओवरराइड किया जा सकता है ) और (?-i
) पीसीआरई झंडे।
देखें कैसे REGEXP_REPLACE()
केस संवेदनशीलता आदि के उदाहरणों के लिए मारियाडीबी में काम करता है।