MySQL में INSERT() फंक्शन का उपयोग करके स्ट्रिंग रिप्लेसमेंट
MySQL में PHP के substr_replace जैसा कोई सीधा फंक्शन नहीं है, लेकिन आप INSERT() फंक्शन का उपयोग करके यही कार्य कर सकते हैं।
सिंटैक्स:
INSERT(str, pos, len, newstr)
- str: मूल स्ट्रिंग
- pos: वह पोजीशन जहां से रिप्लेसमेंट शुरू करना है (1-आधारित इंडेक्स)
- len: रिप्लेस किए जाने वाले वर्णों की संख्या
- newstr: नई स्ट्रिंग जो डाली जाएगी
यह फंक्शन स्ट्रिंग str को लौटाता है, जिसमें पोजीशन pos से शुरू होकर len वर्णों को newstr से बदल दिया जाता है।
आइए एक उदाहरण देखते हैं:
mysql> CREATE TABLE DemoTable (
Password VARCHAR(50)
);
mysql> INSERT INTO DemoTable VALUES ('76367_____8793443');
mysql> INSERT INTO DemoTable VALUES ('12345_____9899984322');
mysql> INSERT INTO DemoTable VALUES ('99999_____4747747432');
mysql> SELECT * FROM DemoTable;
आउटपुट:
+----------------------+ | Password | +----------------------+ | 76367_____8793443 | | 12345_____9899984322 | | 99999_____4747747432 | +----------------------+
पोजीशन 5 से 6 वर्णों ('_____') को 'PPPPPP' से रिप्लेस करने के लिए:
mysql> SELECT INSERT(Password, 5, LENGTH('PPPPPP'), 'PPPPPP') FROM DemoTable;
आउटपुट:
+----------------------------------------------+
| INSERT(Password,5,LENGTH('PPPPPP'),'PPPPPP') |
+----------------------------------------------+
| 7636PPPPPP8793443 |
| 1234PPPPPP9899984322 |
| 9999PPPPPP4747747432 |
+----------------------------------------------+
महत्वपूर्ण बिंदु:
- यदि
posस्ट्रिंग की लंबाई के बाहर है, तो मूल स्ट्रिंग वापस लौटाई जाती है - यदि
lenस्ट्रिंग के शेष भाग से अधिक है, तो पोजीशनposसे अंत तक सब कुछ रिप्लेस हो जाता है - यदि कोई आर्गुमेंट NULL है, तो NULL वापस लौटाया जाता है