समस्या:
आप एक स्ट्रिंग के हिस्से को MySQL में किसी अन्य स्ट्रिंग से बदलना चाहते हैं।
उदाहरण:
हमारे डेटाबेस में motorbike_sale
id
. में डेटा के साथ , name
, और part_number
कॉलम।
आईडी | <थ>नामभाग_संख्या | |
---|---|---|
1 | हार्ले डेविडसन x | 1245-AC2-25 |
2 | होंडा CB750-x | 012-GK8-A8 |
3 | सुजुकी हायाबुसा एक्स | 798-25-28 |
हम सभी हाइफ़न वर्णों को फ़ॉरवर्ड स्लैश से बदलकर मोटरबाइक के पार्ट नंबर बदलना चाहते हैं।
समाधान 1:
SELECT name, REPLACE( part_number, '-', '/' ) as new_part_number FROM motorbike_sale;
यह क्वेरी मोटरबाइक के नामों और नए पार्ट नंबरों की सूची लौटाती है। उन फ़ॉरवर्ड स्लैश पर ध्यान दें जिन्होंने भाग संख्याओं में हाइफ़न को बदल दिया है:
नाम | नया_ part_number |
---|---|
हार्ले डेविडसन x | 1245/AC2/25 |
होंडा CB750-x | 012/GK8/A8 |
सुजुकी हायाबुसा एक्स | 798/25/28 |
चर्चा:
एक सबस्ट्रिंग (यानी शब्द, एक चरित्र, आदि) को दूसरे सबस्ट्रिंग के साथ बदलने के लिए MySQL REPLACE () फ़ंक्शन का उपयोग करें और बदली हुई स्ट्रिंग को वापस करें। यह फ़ंक्शन तीन तर्क लेता है:
- स्ट्रिंग बदलने के लिए। (हमारे उदाहरण में, यह कॉलम है
part_number
।) - प्रतिस्थापित करने के लिए विकल्प (अर्थात वर्ण '-')।
- सम्मिलित करने के लिए विकल्प (अर्थात वर्ण '/')।
ध्यान दें कि यह फ़ंक्शन सभी . को प्रतिस्थापित करता है दिए गए स्ट्रिंग या कॉलम में सबस्ट्रिंग की घटनाएँ। हमारे उदाहरण में, प्रत्येक part_number इसमें तीन हाइफ़न वर्ण होते हैं, जिनमें से प्रत्येक को एक स्लैश से बदल दिया गया था।
अगले उदाहरण में, हम मोटरबाइक नामों में 'x' के सभी उदाहरणों को '10' से बदल देंगे।
समाधान 2:
SELECT id, REPLACE( name, 'x', '10' ) as new_name, part_number FROM motorbike_sale WHERE id>1;
यह क्वेरी id . वाली पंक्तियों के रिकॉर्ड को फ़िल्टर करने के लिए WHERE क्लॉज़ का उपयोग करती है 2 या अधिक का मान।
ध्यान दें कि होंडा मोटरबाइक का नाम 'x' से बदलकर '10' कर दिया गया था, लेकिन सुजुकी मोटरबाइक का नाम नहीं बदला गया था। क्यों नहीं? क्योंकि REPLACE() केस-संवेदी है। इसलिए, 'x' 'X' के समान नहीं है। इस उदाहरण में, 'x' को '10' से बदल दिया गया था, लेकिन 'X' अपरिवर्तित था।
यह क्वेरी होंडा मोटरबाइक का नया नाम और सुजुकी मोटरबाइक का पुराना नाम प्रदर्शित करती है।
आईडी | <थ>नया_नामभाग_संख्या | |
---|---|---|
होंडा CB750-10 | 012-GK8-A8 | |
सुजुकी हायाबुसा एक्स | 798-25-28 |