본문 바로가기

Databases/MySQL

[MySQL] substring_index()으로 특정 문자열만 추출하는 SQL 구문

아래를 보면 fruit라는 컬럼에 다음과 같은 형태로 저장되고 있다.


fruit 

k34ea23&tesdftest$name=apple&t34sest$te^Fdddgft

34hjesjttest$name=banana&t325hukis2st567^%$t

test&rrt45ttest$name=strawberry&te3ktefdfghtttest


각 행마다 추출하고자 하는 과일 이름(apple, banana, strawbery)이 있고, 해당 문자열 전/후로 일정한 형태의 문자열($name=, &)도 같이 저장되고 있다고 가정한다.

이 경우 substring_index() 로 $name= 앞의 모든 문자열을 삭제 하고 한번 더 substring_index()를 사용하여 & 뒤의 문자열을 모두 삭제하면 원하는 문자열만 추출이 가능하다.

이때, 원하는 문자열 전/후 문자는 unique 해야 한다.


[SQL]

select substring_index(substring_index(<colum_name>, '<front_unique_str>', -1), '<rear_unique_str>', 1) as name from table_name