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

วิธีลบข้อมูลที่เป็น Backslash (\\) ใน MySQL

ใช้ DELETE WHERE กับ Escape Sequence สำหรับ Backslash

Backslash (\) เป็นอักขระ Escape ใน String Literal ต้องเขียน \\\\ (4 backslashes) ใน SQL เพื่อแทนค่า \\ (2 backslashes) ในข้อมูลจริง

ตัวอย่างสร้างตารางและข้อมูล

CREATE TABLE DemoTable (FolderName VARCHAR(100));
INSERT INTO DemoTable VALUES ('????'), ('\\\\');

ข้อมูลในตาราง (แสดงเป็น \\ 2 ตัว)

+------------+
| FolderName |
+------------+
| ????       |
| \\         |
+------------+

คำสั่งลบแถวที่ FolderName = '\\'

DELETE FROM DemoTable WHERE FolderName = '\\\\';

ข้อมูลหลังลบ (เหลือ ????)

+------------+
| FolderName |
+------------+
| ????       |
+------------+

คำอธิบาย Escape Sequence:

ใน SQL Stringค่าใน Databaseคำอธิบาย
'\\\\'\\แต่ละคู่ \\\\ → \ เดียวใน DB
'\\'\Escape ตัวเดียว (อาจ Warning)
'\\\\\\\\'\\\\4 backslashes ใน DB

กฎทั่วไป: ใน SQL String Literal (Single-quoted) \\ = Backslash 1 ตัว ดังนั้นเพื่อจับคู่ Backslash 2 ตัวใน DB ต้องเขียน 4 ตัวใน Query

ทางเลือก: ใช้ Prepared Statement / Parameterized Query ส่งค่าเป็น Parameter แยกจาก SQL ไม่ต้อง Escape เอง (ปลอดภัยกว่า ป้องกัน SQL Injection)