Giới thiệu
Sử dụng hàm REPLACE() để thay đổi phần domain của địa chỉ email hàng loạt.
1. Tạo bảng và dữ liệu
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)
2. Dữ liệu ban đầu
mysql> select *from DemoTable;
+---------------------+ | EmailId | +---------------------+ | John123@example.com | | John123@gmail.com | | John123@yahoo.com | | John123@example.com | +---------------------+ 4 rows in set (0.00 sec)
3. Thay thế domain example.com → gmail.com
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
4. Kết quả
mysql> select *from DemoTable;
+-------------------+ | EmailId | +-------------------+ | John123@gmail.com | | John123@gmail.com | | John123@yahoo.com | | John123@gmail.com | +-------------------+ 4 rows in set (0.00 sec)
Cách tiếp cận linh hoạt hơn: Nếu chỉ muốn thay domain mà giữ nguyên username, dùng:
UPDATE DemoTable SET EmailId = CONCAT(SUBSTRING_INDEX(EmailId, '@', 1), '@newdomain.com') WHERE EmailId LIKE '%@olddomain.com';
Cách này tách username bằng SUBSTRING_INDEX rồi nối domain mới.