Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Thay thế tên miền email (phần sau @) trong MySQL

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.