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

แทนที่ Backslash และ Quote ใน VARCHAR MySQL ด้วย REPLACE

ใช้ REPLACE() ในคำสั่ง UPDATE เพื่อแทนที่ลำดับอักขระ \\\" (Backslash + Double Quote) ด้วยแค่ Double Quote (")

ตัวอย่างการสร้างตาราง

mysql> create table DemoTable ( 
    Title varchar(100) ); 
Query OK, 0 rows affected (0.57 sec)

เพิ่มข้อมูลมี Backslash + Quote

mysql> insert into DemoTable values('\\"MySQL'); 
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('MongoDB\\"'); 
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values('\\"Java\\"'); 
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values('\\"C"'); 
Query OK, 1 row affected (0.14 sec)

แสดงข้อมูลก่อนแทนที่

mysql> select * from DemoTable;
+-----------+
| Title     |
+-----------+
| \"MySQL    |
| MongoDB\"  |
| \"Java\"   |
| \"C"      |
+-----------+
4 rows in set (0.00 sec)

คำสั่ง UPDATE แทนที่ \\" ด้วย "

mysql> update DemoTable set Title = replace(Title, '\\"', '"'); 
Query OK, 4 rows affected (0.14 sec)
Rows matched: 4  Changed: 4  Warnings: 0

ตรวจสอบข้อมูลหลังแทนที่

mysql> select * from DemoTable;
+----------+
| Title    |
+----------+
| "MySQL   |
| MongoDB" |
| "Java"   |
| "C"      |
+----------+
4 rows in set (0.00 sec)

คำอธิบาย: ใน SQL String literal ต้อง Escape Backslash ด้วย Backslash อีกตัว: '\\"' แทน '\" (เพราะ \ เป็น Escape character ใน SQL String)

ประยุกต์ใช้: ทำความสะอาดข้อมูล JSON ที่ Escape ผิดพลาด หรือข้อมูลนำเข้าจาก CSV/Log ที่มี Escape character ค้างอยู่