Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Thay thế backslash (\) trong đường dẫn thư mục MySQL với REPLACE

Giới thiệu

Dùng REPLACE(col, '\\', '----') để thay thế ký tự backslash \ bằng chuỗi khác (ví dụ '----') trong cột lưu đường dẫn file.

Ví dụ thực hành

1. Tạo bảng DemoTable827

mysql> CREATE TABLE DemoTable827 (Path TEXT);

2. Chèn đường dẫn có backslash

mysql> INSERT INTO DemoTable827 VALUES ('C\\MySQL'),('D\\NewFolder\\'),('E:\\myFolder\\MyDocument');

Lưu ý: Trong SQL string literal, backslash cần escape: 'C\\\\MySQL' hoặc dùng 'C\\MySQL' nếu NO_BACKSLASH_ESCAPES mode. Ví dụ bài viết dùng 'C\\MySQL'.

3. Thay \ bằng ----

mysql> UPDATE DemoTable827 SET Path = REPLACE(Path, '\\', '----');

4. Kết quả

+------------------------------+
| Path                         |
+------------------------------+
| C----MySQL                   |
| D----NewFolder----           |
| E:----myFolder----MyDocument |
+------------------------------+

Giải thích escape backslash

  • Trong chuỗi SQL: '\\\\' đại diện cho 1 ký tự backslash thực tế (vì \ là escape trong string literal).
  • Trong REPLACE(Path, '\\\\', '----'): đối số thứ 2 là chuỗi 1 ký tự \.
  • Nếu bật NO_BACKSLASH_ESCAPES SQL mode: dùng '\\' trực tiếp.

Ứng dụng thực tế

  • Chuẩn hóa đường dẫn Windows (\\) sang Unix (/): REPLACE(Path, '\\\\', '/').
  • Làm sạch dữ liệu nhập từ CSV, log file.
  • Lưu ý: Backslash trong JSON, regex, LIKE cũng cần escape phù hợp.

Lưu ý

  • REPLACE thay thế tất cả lần xuất hiện.
  • Cột TEXT hỗ trợ độ dài lớn, phù hợp đường dẫn.
  • Test trên tập nhỏ trước khi chạy toàn bảng.