Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

디렉토리 링크가 있는 열의 마지막 / 뒤에 있는 문자열을 대체하는 MySQL 쿼리는 무엇입니까?

<시간/>

이를 위해 substring_index() 메서드를 사용합니다. 먼저 테이블을 생성하겠습니다 -

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/.....');
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)

select 문을 사용하여 테이블의 모든 레코드 표시 -

mysql> select *from DemoTable;

출력

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

다음은 열에서 마지막 / 뒤의 문자열을 디렉토리 링크로 바꾸는 쿼리입니다 -

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

다시 한번 테이블 기록을 확인해보자 -

mysql> select *from DemoTable;

출력

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