함수 기본 형태
SUBSTRING_INDEX(전체 문자열, 자르는 기준, 기준 인덱스)
활용 예시
1) 'A, B, C, D, E' 문자열에서 C까지만 출력하기
SELECT SUBSTRING_INDEX('A, B, C, D, E', ',', 3);
결괏값: 'A, B, C'
> 기준 인덱스을 3으로 설정해준 이유는 C 뒤에 있는 콤마(,)가 세 번째 콤마를 의미하고 이를 기준으로 문자열이 잘리기 때문이에요.
2) 'A, B, C, D, E' 문자열에서 E만 출력하기
SELECT SUBSTRING_INDEX('A, B, C, D, E', ',', -1);
결괏값: 'E'
> 기준 인덱스를 -1로 설정해주면 어떻게 될까요? -1는 문자열에서 가장 마지막 콤마(,)를 의미하기 때문에 뒤에서 가장 첫 번째인 E까지만 잘려 출력돼요.
> 만약, 기준 인덱스를 -2로 설정한다면 결괏값은 'D, E'가 되겠죠?
3) 'A, B, C, D, E' 문자열에서 B만 출력하기
SELECT SUBSTRING_INDEX(SUBSTIRING_INDEX('A, B, C, D, E', ',', 2), ',', -1);
결괏값: 'B'
> 쿼리를 보면 SUBSTRING_INDEX를 두 번 중복해서 사용했습니다. 천천히 살펴볼게요
> 먼저 안쪽 함수 SUBSTRING_INDEX('A, B, C, D, E', ' , ', 2)으로 출력된 문자열은 'A, B'입니다.
> 그리고 출력된 'A, B' 값을 다시 SUBSTRING_INDEX('A, B', ' , ', -1)으로 출력하면 'B'가 나오게 되는 형식입니다.