परिचय
ईमेल पतों में डोमेन नाम बदलने के लिए MySQL के REPLACE() फंक्शन का उपयोग किया जा सकता है। यह तब उपयोगी होता है जब आपको थोक में ईमेल डोमेन अपडेट करने हों।
उदाहरण: टेबल बनाना और डेटा डालना
mysql> CREATE TABLE DemoTable (
-> EmailId VARCHAR(30)
-> );
Query OK, 0 rows affected (0.53 sec)
mysql> INSERT INTO DemoTable VALUES('John123@example.com');
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable VALUES('John123@gmail.com');
Query OK, 1 row affected (0.26 sec)
mysql> INSERT INTO DemoTable VALUES('John123@yahoo.com');
Query OK, 1 row affected (0.09 sec)
mysql> INSERT INTO DemoTable VALUES('John123@example.com');
Query OK, 1 row affected (0.10 sec)
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट:
+---------------------+
| EmailId |
+---------------------+
| John123@example.com |
| John123@gmail.com |
| John123@yahoo.com |
| John123@example.com |
+---------------------+
4 rows in set (0.00 sec)
डोमेन बदलने की UPDATE क्वेरी
mysql> UPDATE DemoTable
-> SET EmailId = REPLACE(EmailId, 'John123@example.com', 'John123@gmail.com');
Query OK, 2 rows affected (0.16 sec)
Rows matched: 4 Changed: 2 Warnings: 0
अपडेट के बाद रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट:
+-------------------+
| EmailId |
+-------------------+
| John123@gmail.com |
| John123@gmail.com |
| John123@yahoo.com |
| John123@gmail.com |
+-------------------+
4 rows in set (0.00 sec)
व्याख्या
REPLACE(EmailId, 'old', 'new')- प्रत्येक ईमेल में 'old' स्ट्रिंग को 'new' से बदलता है- यह पूरा ईमेल पता बदलता है, केवल डोमेन भाग नहीं
Rows matched: 4- 4 पंक्तियां जांची गईंChanged: 2- केवल 2 पंक्तियां वास्तव में बदलीं (जिनमें example.com था)
केवल डोमेन भाग बदलने के लिए
यदि आप केवल @ के बाद का भाग बदलना चाहते हैं:
UPDATE DemoTable
SET EmailId = CONCAT(SUBSTRING_INDEX(EmailId, '@', 1), '@newdomain.com')
WHERE EmailId LIKE '%@example.com';
यह अधिक लचीला दृष्टिकोण है जो उपयोगकर्ता नाम भाग को बरकरार रखता है।