Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

แทนที่ส่วนของสตริง (โดเมนอีเมลหลัง @) ใน MySQL

ใช้ฟังก์ชัน REPLACE() เพื่อเปลี่ยนโดเมนอีเมล เช่น จาก example.com เป็น gmail.com

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)

อัปเดตโดเมน 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)
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() จะเปลี่ยนทุกครั้งที่พบสตริงที่ระบุ หากต้องการเปลี่ยนเฉพาะส่วนโดเมนอาจใช้ SUBSTRING_INDEX หรือ REGEXP_REPLACE (MySQL 8.0+) แทน