괴발개발 성장기

Study/Mysql

[MySql] 컬럼 안에 있는 문자열을 구분자로 자르기

지니유 2022. 4. 15. 22:53
반응형

# 배경

회사에서 동료가 주소를 시,구,군까지 잘라서 카운트를 궁금해 했다. 예를 들어서 서울특별시 강남구 서초동이었다면 구까지 잘라서 해당되는 정보의 카운트를 원한 것이다.

 

# 구조

SUBSTRING_INDEX(컬럼명, '구분자', 카운트)

# 예시1

select  SUBSTRING_INDEX('서울특별시 성동구 난계로 73 (하왕십리동)', ' ',1) ; -- 서울특별시
select  SUBSTRING_INDEX('서울특별시 성동구 난계로 73 (하왕십리동)', ' ',2) ; -- 서울특별시 성동구
select  SUBSTRING_INDEX('서울특별시 성동구 난계로 73 (하왕십리동)', ' ',3) ; -- 서울특별시 성동구 난계로
select  SUBSTRING_INDEX('서울특별시 성동구 난계로 73 (하왕십리동)', ' ',4) ; -- 서울특별시 성동구 난계로 73
select  SUBSTRING_INDEX('서울특별시 성동구 난계로 73 (하왕십리동)', ' ',5) ; -- 서울특별시 성동구 난계로 73 (하왕십리동)
  • 왼쪽부터 한개씩 정보를 추가해서 알 수 있다.

# 예시2

select  SUBSTRING_INDEX('서울특별시 성동구 난계로 73 (하왕십리동)', ' ',-1) ; -- (하왕십리동)
select  SUBSTRING_INDEX('서울특별시 성동구 난계로 73 (하왕십리동)', ' ',-2) ; -- 73 (하왕십리동)
select  SUBSTRING_INDEX('서울특별시 성동구 난계로 73 (하왕십리동)', ' ',-3) ; -- 난계로 73 (하왕십리동)
select  SUBSTRING_INDEX('서울특별시 성동구 난계로 73 (하왕십리동)', ' ',-4) ; -- 성동구 난계로 73 (하왕십리동)
select  SUBSTRING_INDEX('서울특별시 성동구 난계로 73 (하왕십리동)', ' ',-5) ; -- 서울특별시 성동구 난계로 73 (하왕십리동)
  • 오른쪽부터 한개씩 정보를 추가해서 알 수 있다.
  • 0인 경우 값이 나오지 않는다

 

 

반응형