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)
>> 딸기