개발/Database

[MySQL] 파일 경로에서 substring_index 로 파일명, 확장자명 분리해 조회하기

Dane.Kim 2022. 9. 26.

파일 경로는 DB에 저장되어있는데, 파일 이름이나 확장자명이 따로 없는 경우가 있다.

 

이런 경우 여러 방법이 있겠지만 아래와 같은 경우에 사용할 수 있는 방법이다.

 

예를 들어 파일명이

 

[  e-sign/Approval/Attach/2022/07/22/20220722042000281_maven 오류.pdf  ]

 

와 같을 때, 파일 경로 컬럼 명이 LOCATION이라고 가정해보자. 그 때,

select substring_index(LOCATION,'/',-1) as file_name from 해당table;

으로 조회하면 마지막 / 이후의 값이 출력된다.  (20220722042000281_maven 오류.pdf)

 

substring_index에서 첫 파라미터로 컬럼이 들어가고(LOCATION), 두 번째로 '/' 는 구분자로 구분해서 담아놓게끔 하고

 

마지막 -1은 맨 뒤를 뜻한다고 생각하면 된다. 그럼 처음이나 두 번째 인덱스 값을 원하면 -1 자리에 0이나 1을 넣으면 될 것 이다.

 

 

이 함수를 사용하기 전

먼저 조회해서 규칙을 찾는 것이 중요하다. 구분자나 규칙을 먼저 찾아서 substring_index를 사용할 수 있는지 부터 봐야하기 때문.

 

마찬가지로 확장자의 경우 같은 예시라고 했을 때, 구분자를 마침표로 하여서 조회하면 된다. (pdf 출력)

select substring_index(LOCATION,'.',-1) as extention from 해당table;

 

 

댓글