Computer >> Máy Tính >  >> Lập trình >> MySQL

Truy vấn MySQL để thay thế một chuỗi sau / cuối cùng trong một cột với các liên kết thư mục?

Đối với điều này, hãy sử dụng phương thức substring_index (). Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable
   -> (
   -> FolderName varchar(100),
   -> FolderLocation varchar(200)
   -> );
Query OK, 0 rows affected (1.03 sec)

Chèn một số bản ghi vào bảng bằng lệnh chèn -

mysql> insert into DemoTable values('CProgram','C:/AllPrograms/.....');
Query OK, 1 row affected (0.13 sec)

mysql> insert into DemoTable values('Images','E:/MyImage/home/garbage');
Query OK, 1 row affected (0.15 sec)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select *from DemoTable;

Đầu ra

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

Đây là truy vấn để thay thế một chuỗi sau / cuối cùng trong một cột bằng các liên kết thư mục -

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)
Rows matched: 2  Changed: 2 Warnings: 0

Hãy để chúng tôi kiểm tra các bản ghi bảng một lần nữa -

mysql> select *from DemoTable;

Đầu ra

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