본문 바로가기

DB

MySQL 문자열 자르기 SUBSTRING, SUBSTRING_INDEX

MySql, Mariadb의 SUBSTRING, SUBSTRING_INDEX 문자열 자르기 함수에 대해 알아보겠습니다.

추가로 SUBSTRING_INDEX를 활용하여 JAVA의 split처럼 문장열로 자르고 Index에 맞게 가져오는 방법을 설명하겠습니다.

 

 

 

SUBSTRING

사용 방법

SUBSTRING(문자열, 시작 위치)
SUBSTRING(문자열, 시작 위치, 시작 위치부터 가져올 문자수)

예제

SELECT SUBSTRING('123456789', 7);
>> 789

SELECT SUBSTRING('123456789', -7);
>> 3456789


SELECT SUBSTRING('123456789', 3, 5);
>> 34567

SELECT SUBSTRING('123456789', -7, 3);
>> 345

 

 

 

 

 

SUBSTRING_INDEX

사용 방법

SUBSTRING_INDEX(문자열, 구분자, 구분자 Index)

예제

SELECT SUBSTRING_INDEX('사과,바나나,딸기,포도', ',', 3);
>> 사과,바나나,딸기

SELECT SUBSTRING_INDEX('사과,바나나,딸기,포도', ',', -3);
>> 바나나,딸기,포도

 

 

 

 

 

SUBSTRING_INDEX 활용한 split 기능

SUBSTRING_INDEX 함수를 응용하면 JAVA의 split처럼 해당 index에 맞게 문자열을 추출할 수 있다

사용 방법

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(문자열, 구분자, 구분자 Index), 구분자, -1)

예제

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('사과,바나나,딸기,포도', ',', 1), ',', -1) 
>> 사과

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('사과,바나나,딸기,포도', ',', 2), ',', -1) 
>> 바나나

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('사과,바나나,딸기,포도', ',', 3), ',', -1) 
>> 딸기