การแทนที่สตริงในคอลัมน์ด้วย REPLACE()
ฟังก์ชัน REPLACE(str, from_str, to_str) ใช้แทนที่ทุกครั้งที่พบ from_str ใน str ด้วย to_str สามารถใช้ในคำสั่ง UPDATE เพื่อแก้ไขข้อมูลในตาราง
สร้างตารางและเพิ่มข้อมูล
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Value VARCHAR(100)
);
Query OK, 0 rows affected (1.06 sec)
mysql> INSERT INTO DemoTable(Value) VALUES('@amp');
mysql> INSERT INTO DemoTable(Value) VALUES('&');
mysql> INSERT INTO DemoTable(Value) VALUES('#amp');
แสดงข้อมูลก่อนแก้ไข
mysql> SELECT * FROM DemoTable;
ผลลัพธ์:
+----+-------+
| Id | Value |
+----+-------+
| 1 | @amp |
| 2 | & |
| 3 | #amp |
+----+-------+
3 rows in set (0.00 sec)
คำสั่งแทนที่ & ด้วย &
mysql> UPDATE DemoTable SET Value = REPLACE(Value, '&', '&');
Query OK, 1 row affected (0.56 sec)
Rows matched: 3 Changed: 1 Warnings: 0
ตรวจสอบข้อมูลหลังแก้ไข
mysql> SELECT * FROM DemoTable;
ผลลัพธ์:
+----+-------+
| Id | Value |
+----+-------+
| 1 | @amp |
| 2 | & |
| 3 | #amp |
+----+-------+
3 rows in set (0.00 sec)
คำอธิบาย
REPLACE(Value, '&', '&'): หา substring '&' แล้วแทนที่ด้วย '&'- มีผลเฉพาะแถวที่ 2 (ค่า '&') → เปลี่ยนเป็น '&'
- แถว 1 และ 3 ไม่มี '&' จึงไม่เปลี่ยน
Rows matched: 3 Changed: 1: ตรงกับ 3 แถว แต่เปลี่ยนแค่ 1 แถว