UPDATE के साथ REPLACE() फंक्शन का उपयोग
कॉलम मान में किसी विशिष्ट सबस्ट्रिंग को बदलने के लिए REPLACE() फंक्शन का उपयोग UPDATE स्टेटमेंट में करें।
आइए पहले एक टेबल बनाते हैं:
mysql> CREATE TABLE DemoTable (
Code VARCHAR(100)
);
रिकॉर्ड्स इन्सर्ट करें:
mysql> INSERT INTO DemoTable VALUES ('8565-9848-7474');
mysql> INSERT INTO DemoTable VALUES ('9994-6464-8737');
mysql> INSERT INTO DemoTable VALUES ('6574-9090-7643');
सभी रिकॉर्ड्स देखें:
mysql> SELECT * FROM DemoTable;
आउटपुट:
+----------------+ | Code | +----------------+ | 8565-9848-7474 | | 9994-6464-8737 | | 6574-9090-7643 | +----------------+
विशिष्ट कोड को नए कोड से रिप्लेस करने के लिए क्वेरी:
mysql> UPDATE DemoTable
SET Code = REPLACE(Code, '9994-6464-8737', '9994-9999-88888');
आउटपुट: Query OK, 1 row affected (Rows matched: 3, Changed: 1, Warnings: 0)
टेबल रिकॉर्ड्स फिर से जांचें:
mysql> SELECT * FROM DemoTable;
आउटपुट:
+-----------------+ | Code | +-----------------+ | 8565-9848-7474 | | 9994-9999-88888 | | 6574-9090-7643 | +-----------------+
व्याख्या:
- REPLACE(Code, 'old', 'new'): Code कॉलम में 'old' की सभी घटनाओं को 'new' से बदलता है
- केवल दूसरी पंक्ति प्रभावित हुई क्योंकि केवल वही '9994-6464-8737' से मेल खाती थी
- Rows matched: 3 - WHERE क्लॉज नहीं था, इसलिए सभी 3 पंक्तियाँ जांची गईं
- Changed: 1 - केवल 1 पंक्ति वास्तव में बदली
आंशिक रिप्लेसमेंट के लिए:
-- सभी हाइफ़न को अंडरस्कोर से बदलें UPDATE DemoTable SET Code = REPLACE(Code, '-', '_'); -- विशिष्ट पैटर्न के लिए WHERE जोड़ें UPDATE DemoTable SET Code = REPLACE(Code, '9994', 'NEW') WHERE Code LIKE '9994%';
नोट: REPLACE केस-सेंसिटिव है। केस-इनसेंसिटिव रिप्लेसमेंट के लिए LOWER/UPPER या REGEXP_REPLACE (MySQL 8.0+) का उपयोग करें।