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

Thay thế chuỗi sau dấu / cuối cùng trong cột đường dẫn thư mục MySQL

Sử dụng SUBSTRING_INDEX() để tìm vị trí dấu '/' cuối cùng, kết hợp LEFT(), CHAR_LENGTH() và CONCAT() để thay thế phần tên thư mục.

Tạo bảng và dữ liệu

mysql> CREATE TABLE DemoTable (
    -> FolderName VARCHAR(100),
    -> FolderLocation VARCHAR(200)
    -> );
Query OK, 0 rows affected (1.03 sec)
mysql> INSERT INTO DemoTable VALUES('CProgram', 'C:/AllPrograms/.....'), ('Images', 'E:/MyImage/home/garbage');
Query OK, 2 rows affected (0.13 sec)

Truy vấn UPDATE thay thế tên thư mục cuối

mysql> UPDATE DemoTable
    -> SET FolderLocation = CONCAT(
    ->   LEFT(FolderLocation, CHAR_LENGTH(FolderLocation) - CHAR_LENGTH(SUBSTRING_INDEX(FolderLocation, '/', -1))),
    ->   FolderName
    -> );
Query OK, 2 rows affected (0.16 sec)

Kết quả:

+------------+-------------------------+
| FolderName | FolderLocation          |
+------------+-------------------------+
| CProgram   | C:/AllPrograms/CProgram |
| Images     | E:/MyImage/home/Images  |
+------------+-------------------------+
2 rows in set (0.00 sec)

Phân tích:

  • SUBSTRING_INDEX(FolderLocation, '/', -1): lấy phần sau dấu '/' cuối (ten-thu-muc-cu)
  • CHAR_LENGTH(...) - CHAR_LENGTH(...): tính độ dài phần đường dẫn cha
  • LEFT(..., do_dai_cha): cắt lấy đường dẫn cha
  • CONCAT(duong_dan_cha, FolderName): gắn tên thư mục mới