ใช้ 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 ค้างอยู่