मारियाडीबी में, REPLACE()
एक अंतर्निहित स्ट्रिंग फ़ंक्शन है जो आपको स्ट्रिंग के एक भाग को दूसरी स्ट्रिंग से बदलने की अनुमति देता है।
फ़ंक्शन तीन तर्कों को स्वीकार करता है:स्ट्रिंग, प्रतिस्थापित करने के लिए सबस्ट्रिंग, और सबस्ट्रिंग को प्रतिस्थापित करने के लिए स्ट्रिंग।
सिंटैक्स
वाक्य रचना इस प्रकार है:
REPLACE(str,from_str,to_str)
जहां str
स्ट्रिंग है, और from_str
प्रतिस्थापित करने के लिए सबस्ट्रिंग है, और to_str
उस सबस्ट्रिंग को प्रतिस्थापित करने के लिए स्ट्रिंग है।
उदाहरण
यहां एक बुनियादी उदाहरण दिया गया है:
SELECT REPLACE('Black dog', 'Dog', 'Cat');
परिणाम:
+------------------------------------+ | REPLACE('Black dog', 'dog', 'cat') | +------------------------------------+ | Black cat | +------------------------------------+
इस मामले में हमने सबस्ट्रिंग 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()
स्ट्रिंग को अपरिवर्तित लौटाता है:
SELECT REPLACE('Black dog', 'horse', 'cat');
परिणाम:
+--------------------------------------+ | REPLACE('Black dog', 'horse', 'cat') | +--------------------------------------+ | Black dog | +--------------------------------------+
केस संवेदनशीलता
REPLACE()
फ़ंक्शन केस-संवेदी मिलान करता है:
SELECT REPLACE('Black dog', 'Dog', 'Cat');
परिणाम:
+------------------------------------+ | REPLACE('Black dog', 'Dog', 'Cat') | +------------------------------------+ | Black dog | +------------------------------------+
इस उदाहरण में, मामला मेल नहीं खाता, और इसलिए कुछ भी बदला नहीं गया।
खाली स्ट्रिंग्स
यहाँ क्या होता है जब प्रत्येक दिए गए तर्क के लिए एक खाली स्ट्रिंग पास की जाती है:
SELECT
REPLACE('', 'dog', 'cat') AS "1",
REPLACE('Black dog', '', 'cat') AS "2",
REPLACE('Black dog', 'dog', '') AS "3";
परिणाम:
+------+-----------+--------+ | 1 | 2 | 3 | +------+-----------+--------+ | | Black dog | Black | +------+-----------+--------+
तो इस मामले में:
- आरंभिक स्ट्रिंग के लिए एक खाली स्ट्रिंग पास करने से एक खाली स्ट्रिंग वापस आती है।
- दूसरे तर्क के लिए एक खाली स्ट्रिंग पास करने से मूल स्ट्रिंग वापस आ जाती है।
- तीसरे आर्ग्युमेंट के लिए एक खाली स्ट्रिंग पास करने से वह स्ट्रिंग हट जाती है जिसे स्ट्रिंग से बदला जाना है।
स्पेस कैरेक्टर
एक खाली स्ट्रिंग स्पेस कैरेक्टर के समान नहीं है।
यहां बताया गया है कि जब हम खाली स्ट्रिंग को स्पेस में बदलते हैं तो क्या होता है:
SELECT
REPLACE(' ', 'dog', 'cat') AS "1",
REPLACE('Black dog', ' ', 'cat') AS "2",
REPLACE('Black dog', 'dog', ' ') AS "3";
परिणाम:
+------+-------------+---------+ | 1 | 2 | 3 | +------+-------------+---------+ | | Blackcatdog | Black | +------+-------------+---------+
इसलिए, अगर स्ट्रिंग एक स्पेस के अलावा और कुछ नहीं है, तो हम उसे दूसरी स्ट्रिंग से बदल सकते हैं:
SELECT REPLACE(' ', ' ', 'cat');
परिणाम:
+--------------------------+ | REPLACE(' ', ' ', 'cat') | +--------------------------+ | cat | +--------------------------+
अशक्त तर्क
null
प्रदान करना परिणाम null
:
SELECT
REPLACE(null, 'dog', 'cat') AS "1",
REPLACE('Black dog', null, 'cat') AS "2",
REPLACE('Black dog', 'dog', null) AS "3";
परिणाम:
+------+------+------+ | 1 | 2 | 3 | +------+------+------+ | NULL | NULL | NULL | +------+------+------+
अनुपलब्ध तर्क
कॉलिंग REPLACE()
तर्कों की गलत संख्या के साथ, या बिना कोई तर्क पारित किए त्रुटि उत्पन्न होती है:
SELECT REPLACE();
परिणाम:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1पर ')' के पास उपयोग करने के लिए सही सिंटैक्स के लिए अपने मारियाडीबी सर्वर संस्करण से संबंधित मैनुअल की जांच करें।