translate.
- 1 1. परिचय
- 2 2. REPLACE फ़ंक्शन का मूल उपयोग
- 3 3. व्यावहारिक उदाहरण: एकल स्ट्रिंग को बदलना
- 4 4. एक साथ कई स्ट्रिंग्स को कैसे बदलें
- 5 5. प्रदर्शन और सर्वोत्तम प्रथाएँ
- 6 6. नोट्स और सामान्य त्रुटियाँ
- 7 7. सारांश
- 8 8. संबंधित जानकारी
- 9 FAQ: MySQL REPLACE() फ़ंक्शन
- 9.1 Q1. MySQL REPLACE() क्या करता है?
- 9.2 Q2. क्या MySQL REPLACE() केस-सेंसिटिव है?
- 9.3 Q3. क्या REPLACE() केवल पहला मिलान बदलता है?
- 9.4 Q4. यदि बदलने के लिए सबस्ट्रिंग नहीं मिलती तो क्या होता है?
- 9.5 Q5. क्या मैं UPDATE स्टेटमेंट में REPLACE() का उपयोग कर सकता हूँ?
- 9.6 Q6. मैं एक साथ कई अलग‑अलग स्ट्रिंग्स को कैसे बदलूँ?
- 9.7 Q7. क्या REPLACE() जापानी या अन्य मल्टी‑बाइट कैरेक्टर्स के साथ काम करता है?
- 9.8 Q8. REPLACE() उपयोग करने में कोई प्रदर्शन जोखिम है क्या?
- 9.9 Q9. प्रोडक्शन में बड़े REPLACE अपडेट को सुरक्षित रूप से कैसे चलाएँ?
- 9.10 Q10. REPLACE() और REGEXP_REPLACE() में क्या अंतर है?
1. परिचय
परिचय
डेटाबेस प्रबंधन में अक्सर आपके डेटा के कुछ हिस्से को बदलने की आवश्यकता होती है। उदाहरण के लिए, कई स्थितियों में आपको किसी विशिष्ट स्ट्रिंग को नई स्ट्रिंग से बदलना पड़ता है, जैसे उत्पाद नाम बदलना या पते अपडेट करना। MySQL के REPLACE फ़ंक्शन का उपयोग करके आप इन प्रतिस्थापन कार्यों को कुशलता से कर सकते हैं। इस लेख में हम REPLACE फ़ंक्शन के बुनियादी से लेकर उन्नत उपयोग तक सब कुछ विस्तार से समझाएंगे।
इस लेख का उद्देश्य
इस लेख का लक्ष्य आपको MySQL के REPLACE फ़ंक्शन का मूल उपयोग सीखने और इसे वास्तविक डेटाबेस संचालन में लागू करने में मदद करना है। इस लेख के माध्यम से आप REPLACE के विभिन्न उपयोग मामलों को समझेंगे, सरल स्ट्रिंग प्रतिस्थापन से लेकर कई प्रतिस्थापनों तक।
2. REPLACE फ़ंक्शन का मूल उपयोग
REPLACE सिंटैक्स और व्याख्या
REPLACE फ़ंक्शन का उपयोग दिए गए स्ट्रिंग के भीतर किसी विशिष्ट उपस्ट्रिंग को नई स्ट्रिंग से बदलने के लिए किया जाता है। सिंटैक्स इस प्रकार है।
REPLACE(str, from_str, to_str)
str: प्रक्रिया करने के लिए मूल स्ट्रिंग।from_str: वह उपस्ट्रिंग जिसे आप बदलना चाहते हैं।to_str: नई उपस्ट्रिंग जिससे इसे बदलना है।
यह फ़ंक्शन str में मिलने वाले सभी from_str को to_str से बदल देता है। एक महत्वपूर्ण बात यह है कि यह प्रतिस्थापन केस‑सेंसिटिव (अक्षर के आकार को ध्यान में रखता) है।
बुनियादी उदाहरण
उदाहरण के लिए, यदि आप स्ट्रिंग “Java and JavaScript is good” में “Java” को “JAVA” से बदलना चाहते हैं, तो आप REPLACE फ़ंक्शन इस प्रकार उपयोग कर सकते हैं।
SELECT REPLACE('Java and JavaScript is good', 'Java', 'JAVA');
परिणाम “JAVA and JavaScript is good” होगा। REPLACE फ़ंक्शन निर्दिष्ट स्ट्रिंग में from_str को खोजता है और उसे to_str से बदल देता है।
केस‑सेंसिटिव व्यवहार
क्योंकि REPLACE फ़ंक्शन केस‑सेंसिटिव है, “Java” और “java” को अलग स्ट्रिंग माना जाता है। उदाहरण के लिए, नीचे दिए गए क्वेरी में केवल “AaA” को “REPLACE” से बदला जाएगा।
SELECT REPLACE('aaa AaA aAa aaA', 'AaA', 'REPLACE');
इस मामले में “aaa” और “aAa” अपरिवर्तित रहेंगे, और केवल “AaA” बदला जाएगा। इस व्यवहार को समझना REPLACE फ़ंक्शन का उपयोग करते समय महत्वपूर्ण है।
3. व्यावहारिक उदाहरण: एकल स्ट्रिंग को बदलना
उदाहरण 1: सरल स्ट्रिंग प्रतिस्थापन
यदि आप किसी उत्पाद नाम में “old product” स्ट्रिंग को “new product” से बदलना चाहते हैं, तो आप REPLACE फ़ंक्शन इस प्रकार उपयोग कर सकते हैं।
SELECT REPLACE('This is an old product', 'old product', 'new product');
जब आप इस क्वेरी को चलाएंगे, तो परिणाम “This is a new product” मिलेगा। REPLACE फ़ंक्शन निर्दिष्ट स्ट्रिंग में from_str की सभी घटनाओं को to_str से बदल देता है।
उदाहरण 2: मल्टी‑बाइट अक्षरों का प्रतिस्थापन
REPLACE फ़ंक्शन मल्टी‑बाइट अक्षरों, जैसे जापानी, को भी समर्थन करता है। उदाहरण के लिए, नीचे दिया गया क्वेरी एक जापानी स्ट्रिंग के हिस्से को बदलता है।
SELECT REPLACE('This is Minato City', 'Minato City', 'Chuo City');
जब आप इस क्वेरी को चलाएंगे, तो परिणाम “This is Chuo City” मिलेगा। REPLACE फ़ंक्शन मल्टी‑बाइट अक्षरों के साथ भी सही ढंग से काम करता है।
4. एक साथ कई स्ट्रिंग्स को कैसे बदलें
नेस्टेड REPLACE फ़ंक्शन
यदि आप एक साथ कई स्ट्रिंग्स को बदलना चाहते हैं, तो आप REPLACE फ़ंक्शन को नेस्ट कर सकते हैं। उदाहरण के लिए, “One” को “1”, “Two” को “2”, और “Three” को “3” से बदलने के लिए आप क्वेरी इस प्रकार लिख सकते हैं।
UPDATE t_test SET emp = REPLACE(REPLACE(REPLACE(emp, 'One', '1'), 'Two', '2'), 'Three', '3');
नेस्टेड REPLACE फ़ंक्शन एक ही ऑपरेशन में कई प्रतिस्थापन करने का सुविधाजनक तरीका है। हालांकि, यदि नेस्टिंग बहुत गहरी हो जाए तो क्वेरी पढ़ने में कठिन हो सकती है। यदि आपको जटिल प्रतिस्थापन चाहिए, तो अन्य तरीकों पर भी विचार करें।
CASE अभिव्यक्ति का उपयोग
यदि आपको कई शर्तों के आधार पर स्ट्रिंग्स को बदलना है, तो आप CASE अभिव्यक्ति का भी उपयोग कर सकते हैं। यह तरीका पढ़ने में आसान है और शर्तों के अनुसार अधिक लचीले प्रतिस्थापन की अनुमति देता है।
UPDATE t_test SET emp = CASE
WHEN emp LIKE '%One' THEN REPLACE(emp,'One','1')
WHEN emp LIKE '%Two' THEN REPLACE(emp,'Two','2')
WHEN emp LIKE '%Three' THEN REPLACE(emp,'Three','3')
ELSE emp
END;
CASE अभिव्यक्ति कई शर्तों के आधार पर एक ही कथन में प्रतिस्थापन करने के लिए उपयोगी है, और यह तब मदद करती है जब आपको विशिष्ट पैटर्न से मेल खाने वाले डेटा को बदलना हो।
5. प्रदर्शन और सर्वोत्तम प्रथाएँ
प्रदर्शन पर प्रभाव
जब बड़े डेटासेट पर REPLACE फ़ंक्शन का उपयोग किया जाता है, तो क्वेरी निष्पादन समय लंबा हो सकता है। विशेष रूप से, यदि आप पूरी तालिका में कई रिकॉर्ड्स के बीच स्ट्रिंग्स को बदलते हैं, तो आपको निष्पादन समय और प्रदर्शन प्रभाव पर विचार करना चाहिए। अपने ऑपरेशन को अनुकूलित करने के लिए निम्नलिखित बिंदुओं को ध्यान में रखें।
- इंडेक्स का उपयोग करें : खोज और प्रतिस्थापन की गति सुधारने के लिए आवश्यक होने पर इंडेक्स बनाएं।
- बैच में चलाएँ : यदि आपको बड़ी मात्रा में डेटा बदलना है, तो सभी रिकॉर्ड्स को एक साथ प्रोसेस करने से बचें। ऑपरेशन को कई बैचों में चलाने से डेटाबेस पर लोड कम हो सकता है।

अनुशंसित सर्वोत्तम प्रथाएँ
जब REPLACE फ़ंक्शन का उपयोग किया जाता है, तो इन सर्वोत्तम प्रथाओं का पालन करने से आप डेटा को कुशलतापूर्वक और सुरक्षित रूप से संभाल सकते हैं।
- एक बैकअप बनाएं : बड़े पैमाने पर प्रतिस्थापन करने से पहले, डेटाबेस का पूर्ण बैकअप बनाएं।
- पहले परीक्षण करें : प्रोडक्शन में क्वेरी चलाने से पहले, इसे स्टेजिंग या टेस्ट वातावरण में परीक्षण करें ताकि आप इच्छित परिणाम प्राप्त कर सकें।
- WHERE क्लॉज़ का उपयोग करें : ऑपरेशन को विशिष्ट रिकॉर्ड्स तक सीमित करने और केवल आवश्यक डेटा को लक्षित करने के लिए
WHEREक्लॉज़ का उपयोग करें।
6. नोट्स और सामान्य त्रुटियाँ
केस-सेंसिटिविटी समस्याएँ
क्योंकि REPLACE फ़ंक्शन केस-सेंसिटिव है, आपको अपेक्षित परिणाम नहीं मिल सकते। उदाहरण के लिए, “Java” और “java” को अलग स्ट्रिंग्स माना जाता है, इसलिए यदि आप दोनों को बदलना चाहते हैं, तो आपको अलग-अलग REPLACE कॉल्स का उपयोग करना होगा। केस-सेंसिटिविटी समस्याओं से बचने के लिए, आप REPLACE को LOWER या UPPER के साथ भी संयोजित कर सकते हैं ताकि प्रतिस्थापन करने से पहले टेक्स्ट को लोअरकेस या अपरकेस में बदल सकें।
अन्य फ़ंक्शनों के साथ संयोजन
आप REPLACE फ़ंक्शन को अन्य स्ट्रिंग मैनिपुलेशन फ़ंक्शनों के साथ भी संयोजित कर सकते हैं। हालांकि, उन्हें साथ में उपयोग करते समय प्रत्येक फ़ंक्शन के व्यवहार को पूरी तरह समझना चाहिए। उदाहरण के लिए, REPLACE को CONCAT या SUBSTRING के साथ संयोजित करने से अप्रत्याशित परिणाम मिल सकते हैं, इसलिए इसे चलाने से पहले अपनी क्वेरी के व्यवहार की पुष्टि करें।
सामान्य त्रुटियाँ और समस्या निवारण
REPLACE फ़ंक्शन का उपयोग करते समय सामान्य समस्याओं में लक्ष्य उपस्ट्रिंग न मिलना, या स्ट्रिंग के अनपेक्षित भागों का प्रतिस्थापन शामिल है। इन समस्याओं से बचने के लिए, पहले डेटा और स्ट्रिंग्स की जाँच करें और आवश्यक होने पर बैकअप बनाएं। साथ ही, हमेशा क्वेरी को पहले टेस्ट वातावरण में चलाएँ ताकि यह सुनिश्चित हो सके कि यह इच्छित रूप से काम करता है।
7. सारांश
REPLACE फ़ंक्शन MySQL में स्ट्रिंग मैनिपुलेशन के लिए एक बहुत उपयोगी और शक्तिशाली टूल है। बुनियादी उपयोग से लेकर एक साथ कई स्ट्रिंग्स को बदलने के तरीकों तक, यह विभिन्न प्रकार के ऑपरेशनों को समर्थन देता है और कुशल डेटाबेस प्रबंधन में योगदान देता है। हालांकि, आपको केस-सेंसिटिविटी, प्रदर्शन प्रभाव, और अन्य फ़ंक्शनों के साथ संयोजन में इसके व्यवहार पर ध्यान देना चाहिए।
REPLACE फ़ंक्शन का सही उपयोग करके, आप डेटाबेस ऑपरेशनों की दक्षता बढ़ा सकते हैं और डेटा की स्थिरता और अखंडता बनाए रख सकते हैं। इस लेख में प्रस्तुत तकनीकों का उपयोग करके MySQL स्ट्रिंग मैनिपुलेशन को अधिक प्रभावी ढंग से करें।
8. संबंधित जानकारी
अन्य स्ट्रिंग फ़ंक्शन
यहाँ कुछ अन्य स्ट्रिंग मैनिपुलेशन फ़ंक्शन हैं जिन्हें REPLACE फ़ंक्शन के साथ उपयोग किया जा सकता है।
. CONCAT : कई स्ट्रिंग्स को जोड़ता है। यह तब उपयोगी होता है जब आप REPLACE फ़ंक्शन के साथ प्रतिस्थापन करने के बाद अतिरिक्त टेक्स्ट जोड़ना चाहते हैं।
SUBSTRING : स्ट्रिंग का एक भाग निकालता है। आप इसे REPLACE के साथ मिलाकर किसी विशिष्ट सबस्ट्रिंग को बदल या हटाने के लिए उपयोग कर सकते हैं।
TRIM* : स्ट्रिंग की शुरुआत और अंत में अतिरिक्त स्पेस को हटाता है। यह तब मददगार होता है जब आप REPLACE उपयोग करने से पहले अनावश्यक व्हाइटस्पेस को साफ़ करना चाहते हैं।
संबंधित लेखों के लिंक
REPLACE फ़ंक्शन के अलावा, MySQL स्ट्रिंग मैनिपुलेशन सीखने के लिए निम्नलिखित लेख भी सहायक हैं।
- List of MySQL String Functions
- How to Optimize a Database in MySQL
- How to Use MySQL CASE Statements (Examples and Advanced Use)
इन संसाधनों को देखें, ताकि आप MySQL स्ट्रिंग मैनिपुलेशन कौशल को और बेहतर बना सकें।
FAQ: MySQL REPLACE() फ़ंक्शन
Q1. MySQL REPLACE() क्या करता है?
MySQL REPLACE() किसी स्ट्रिंग के भीतर निर्दिष्ट सबस्ट्रिंग के सभी उदाहरणों को दूसरे सबस्ट्रिंग से बदल देता है। यह अक्सर प्रोडक्ट नाम, पते, लेबल आदि जैसे टेक्स्ट डेटा को साफ़ या अपडेट करने के लिए उपयोग किया जाता है।
Q2. क्या MySQL REPLACE() केस-सेंसिटिव है?
हाँ। REPLACE() केस‑सेंसिटिव है, अर्थात् यह 'Java' और 'java' को अलग स्ट्रिंग मानता है। यदि आप केस‑इंसेंसिटिव प्रतिस्थापन चाहते हैं, तो REPLACE() लागू करने से पहले स्ट्रिंग को LOWER() या UPPER() से बदलने पर विचार करें।
Q3. क्या REPLACE() केवल पहला मिलान बदलता है?
नहीं। REPLACE() इनपुट स्ट्रिंग में लक्ष्य सबस्ट्रिंग के सभी मिलते हुए उदाहरणों को बदल देता है।
Q4. यदि बदलने के लिए सबस्ट्रिंग नहीं मिलती तो क्या होता है?
यदि लक्ष्य सबस्ट्रिंग इनपुट स्ट्रिंग में मौजूद नहीं है, तो REPLACE() मूल स्ट्रिंग को अपरिवर्तित वापस करता है।
Q5. क्या मैं UPDATE स्टेटमेंट में REPLACE() का उपयोग कर सकता हूँ?
हाँ। REPLACE() अक्सर UPDATE स्टेटमेंट में टेबल के संग्रहीत टेक्स्ट मानों को संशोधित करने के लिए उपयोग किया जाता है। बड़े अपडेट के लिए पहले परीक्षण करना और WHERE क्लॉज़ से पंक्तियों को सीमित करना अनुशंसित है।
Q6. मैं एक साथ कई अलग‑अलग स्ट्रिंग्स को कैसे बदलूँ?
आप कई स्ट्रिंग्स को नेस्टेड REPLACE() कॉल्स से बदल सकते हैं, जैसे REPLACE(REPLACE(...), ...)। वैकल्पिक रूप से, जब प्रतिस्थापन शर्तों पर निर्भर हो तो CASE एक्सप्रेशन का उपयोग किया जा सकता है।
Q7. क्या REPLACE() जापानी या अन्य मल्टी‑बाइट कैरेक्टर्स के साथ काम करता है?
हाँ। REPLACE() मल्टी‑बाइट कैरेक्टर्स, जिसमें जापानी भी शामिल है, के साथ सही ढंग से काम करता है, बशर्ते आपका डेटाबेस/टेबल/कनेक्शन कैरेक्टर सेट सही तरीके से सेट हो (आमतौर पर utf8mb4)।
Q8. REPLACE() उपयोग करने में कोई प्रदर्शन जोखिम है क्या?
हाँ। बड़े डेटा सेट (विशेषकर कई पंक्तियों में) पर REPLACE() चलाने से गति धीमी हो सकती है और डेटाबेस लोड बढ़ सकता है। बेहतर प्रदर्शन के लिए अपडेट को बैच में चलाएँ, स्टेजिंग वातावरण में परीक्षण करें, और WHERE क्लॉज़ से फ़िल्टर लागू करें।
Q9. प्रोडक्शन में बड़े REPLACE अपडेट को सुरक्षित रूप से कैसे चलाएँ?
बड़े प्रतिस्थापन से पहले पूर्ण बैकअप लें, क्वेरी को नॉन‑प्रोडक्शन वातावरण में परीक्षण करें, और अपडेट को छोटे बैचों में चलाने पर विचार करें। हमेशा SELECT प्रीव्यू से प्रभावित पंक्तियों की पुष्टि करें।
Q10. REPLACE() और REGEXP_REPLACE() में क्या अंतर है?
REPLACE() सरल सबस्ट्रिंग प्रतिस्थापन करता है। यदि आपको रेगुलर एक्सप्रेशन के आधार पर पैटर्न‑आधारित प्रतिस्थापन चाहिए, तो REGEXP_REPLACE() का उपयोग करें (नए MySQL संस्करणों में उपलब्ध)।


