การใช้ REPLACE() แทนที่ Backslash
Backslash \ เป็นอักขระ Escape ใน String ต้องเขียน \\\\ ใน Query เพื่อแทน \ เดียว
ตัวอย่าง
mysql> create table DemoTable827(Path text);
Query OK, 0 rows affected (0.69 sec)
mysql> insert into DemoTable827 values('C\\MySQL');
mysql> insert into DemoTable827 values('D\\NewFolder\\');
mysql> insert into DemoTable827 values('E:\\myFolder\\MyDocument');
ข้อมูลในตาราง (แสดงเป็น \ เดียว):
+------------------------+
| Path |
+------------------------+
| C\MySQL |
| D\NewFolder\ |
| E:\myFolder\MyDocument |
+------------------------+
คำสั่ง REPLACE (เปลี่ยน \ เป็น ----)
mysql> update DemoTable827 set Path = REPLACE(Path, '\\', '----');
Query OK, 3 rows affected (0.18 sec)
ผลลัพธ์:
+------------------------------+
| Path |
+------------------------------+
| C----MySQL |
| D----NewFolder---- |
| E:----myFolder----MyDocument |
+------------------------------+
คำอธิบาย Escape Sequence
| ใน SQL String | ค่าจริงในตาราง | คำอธิบาย |
|---|---|---|
'\\\\' | \ | Backslash เดียว (Escape \ ด้วย \) |
'\\' | \ | ในบาง Context (NO_BACKSLASH_ESCAPES OFF) |
การใช้งานจริง: แปลง Windows Path เป็น Unix
UPDATE paths SET path = REPLACE(path, '\\', '/');
สรุป
ใช้ REPLACE(col, '\\\\', 'replacement') แทนที่ Backslash ใน MySQL ต้อง Escape Backslash ใน Query String