초이준철
물낌표
초이준철
전체 방문자
오늘
어제
  • 분류 전체보기 (59)
    • Python (6)
    • SQL (37)
    • 경험 (4)
    • Tableau (7)
      • Tableau 기본 (2)
      • Tableau 빅스데이터 22여름 대학생 TWBX (5)
    • 책으로 배우는 공부 (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • mysql 문자열 자르기
  • mysql set
  • Mysql ifnull
  • 통계책
  • MYSQL desc
  • TWBX 대학생
  • 데이터 분석 방법
  • 새빨간 거짓말 통계
  • TWBX 과제
  • MYSQL CASE문
  • mysql 문자열 연결
  • 데이터리안
  • 데벨챌
  • MYSQL 테이블 구조
  • 데이터 심리학
  • mysql concat
  • 물낌표
  • MYSQL 집계함수
  • MYSQL group by
  • MYSQL insert

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
초이준철

?!

SQL

[MySQL] 원하는 문자열 기준으로 자르는 방법 SUBSTRING_INDEX()

2023. 1. 13. 19:05

 함수 기본 형태

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'가 나오게 되는 형식입니다.

저작자표시 (새창열림)
    'SQL' 카테고리의 다른 글
    • [MySQL] DATE 선택, 가공, 차이, 디폴트 (DATE_FORMAT, DATEDIFF, CURRNT, NOW)
    • [MySQL] AUTO_INCREMENT로 자동으로 숫자를 증가시키기
    • [MySQL] 특정 데이터의 타입을 바꾸는(형변환) 함수 CAST, CONVERT를 알아보자
    • [MySQL] 문자열 연결 함수 CONCAT_WS() 알아보기
    초이준철
    초이준철
    WNWA

    티스토리툴바