본문 바로가기
Programming/SQL

[MySQL] 문자열 자르기 (SUBSTR, SUBSTRING)

by 코딩하는 금융인 2021. 8. 22.

안녕하세요.

오늘은 MySQL에서 간단하게 문자열을 추출하거나 자를 때 사용하는 함수에 대해 알아보겠습니다.

MySQL 문자열 다루기

 

 SQL 문자열 추출 함수 (SUBSTR, SUBSTRING)

▣ 문자열 자르기 함수 종류

RDBMS Function
Oracle SUBSTR()
MySQL SUBSTR(), SUBSTRING()

DB에서 문자열 추출 시, Oracle에서는 SUBSTR를 사용하고 MySQL에서는 SUBSTR와 SUBSTRING 모두 사용합니다.

 

▣ 문자열 자르기 함수 설명

SUBSTRING, SUBSTR('문자열 STR', '시작지점 START', '길이 LENGTH')
- 문자열(STR)을 시작지점부터 길이만큼 추출 / [길이 미입력시 끝까지 추출]

 

예제 및 결과

# 예제 Table
WITH EXAMPLE AS(
SELECT '오늘보다 발전한 내일의 내가 되기를' STR FROM DUAL
)

SELECT
SUBSTR(STR,1,4), --STR의 1번째 글자부터 4개 자르기
SUBSTR(STR,6,3), --STR의 6번째 글자부터 5개 자르기
SUBSTR(STR,10), --STR의 10번째 글자부터 끝까지 자르기
SUBSTR(STR,-3,3), --STR의 뒤에서 3번째 글자부터 3글자 자르기
SUBSTR(STR,-6), --STR의 뒤에서 6번째 글자부터 끝까지 자르기
FROM
EXAMPLE

 

 

SUBSTR(STR,1,4) SUBSTR(STR,6,3) SUBSTR(STR,10) SUBSTR(STR,-3,3) SUBSTR(STR,-6)
오늘보다 발전한 내일의 내가 되기를 되기를 내가 되기를

 

 문자열 위치 찾기 (INSTR)

▣ 문자열 위치 찾기 함수 설명

INSTR('문자열 STR', 'TARGET 문자', '시작지점 START', '횟수 TIMES')
- 문자열(STR)에서 시작지점부터 TIMES번째 나타난 TARGET 문자의 위치를 찾아줌 

 

▣ 예제 및 결과

# 예제 Table
WITH EXAMPLE AS(
SELECT '오늘보다 발전한 내일의 내가 되기를' STR FROM DUAL
)

SELECT
INSTR(STR, ' '), --' ' STR에서 띄어쓰기 있는 문자 위치 찾기
INSTR(STR, ' ', 7), --STR의 7째 문자부터 띄어쓰기가 있는 문자 위치 찾기
INSTR(STR, ' ', 7,2), --STR의 7째 문자부터 2번째 띄어쓰기가 있는 문자 찾기
SUBSTR(STR, 0, INSTR(STR, ' ', 1, 2)) --띄어쓰기 2번째 문자열까지 문자열 자르기
FROM
EXAMPLE
INSTR(STR,'') INSTR(STR,'',7) INSTR(STR,'',7,2) SUBSTR(STR,0,INSTR(STR,'',1,2))
5 9 13 오늘보다 발전한

 

References
반응형

댓글