MySQL query to replace a string after the last / in a column with directory links?

MySQLMySQLi Database

For this, use the substring_index() method. Let us first create a table −

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

Insert some records in the table using insert command −

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)

Display all records from the table using select statement −

mysql> select *from DemoTable;

Output

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

Here is the query to replace a string after the last / in a column with directory links −

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

Let us check the table records once again −

mysql> select *from DemoTable;

Output

+------------+-------------------------+
| FolderName | FolderLocation          |
+------------+-------------------------+
| CProgram   | C:/AllPrograms/CProgram |
| Images     | E:/MyImage/home/Images  |
+------------+-------------------------+
2 rows in set (0.00 sec)
raja
Published on 10-Jul-2019 11:48:53
Advertisements