문자열 함수 substring_index를 공부해보자!
1. 내가 하고자 한 것
2. 시도해 본 쿼리
- 재귀함수(Recursive)를 이용해 장르 분리를 시도했다.
- (쿼리 설명) anchor 부분 쿼리를 짜기 위해 1번째 장르와 남은(remaining) 장르를 구분하였다.
- case when이 지저분하고 가독성이 떨어지는 듯 하다.
3. 개선된 쿼리
- substring_index를 이용해 개선해 보았다.
- 훨씬 가독성이 좋아지고 쿼리가 간결해졌다! 굿 ❤🌞
substring_index 함수
- 구분자를 기준으로, 왼쪽부터 지정된 구분자까지의 문자열을 반환한다.
- 문법 구조: SUBSTRING_INDEX(string, delimiter, count)
- string: 처리할 문자열, 컬럼
- delimiter: 문자열을 나누는 기준이 되는 구분자
- count: 반환할 구분자의 위치
- ex) 구분자 = ',' count = 2 라면 두번째까지 가져온다
- 만약 string에 구분자가 없다면???? => string을 그대로 반환한다. (이 특징 덕분에 case when 간결화 가능 💡)
- ex) SELECT SUBSTRING_INDEX('Action', ',', 1); -- "Action"
예시) count = 양수 일 때
SELECT SUBSTRING_INDEX('Action,Comedy,Drama', ',', 1); -- 'Action'
SELECT SUBSTRING_INDEX('Action,Comedy,Drama', ',', 2); -- 'Action,Comedy'
SELECT SUBSTRING_INDEX('Action,Comedy,Drama', ',', 3); -- 'Action,Comedy,Drama'
count = 음수 일 때
SELECT SUBSTRING_INDEX('Action,Comedy,Drama', ',', -1); -- 'Drama'
SELECT SUBSTRING_INDEX('Action,Comedy,Drama', ',', -2); -- 'Comedy,Drama'
SELECT SUBSTRING_INDEX('Action,Comedy,Drama', ',', -3); -- 'Action,Comedy,Drama'
'MY SQL' 카테고리의 다른 글
[MY SQL] SQL 기초 문법_조건에 맞는 데이터 가져오기, SQL 쿼리 작성법 - SQL로 하는 데이터분석 (0) | 2024.06.18 |
---|---|
[MY SQL] 데이터베이스 다루기, 데이터 가져오기, 쿼리 작성법_SQL로 하는 데이터분석 (3) | 2024.06.13 |