본문 바로가기
MySQL

[MYSQL] 문자열 자르기 (SUBSTRING, SUBSTR, LEFT, RIGTH, SUBSTRING_INDEX)

by 스누누피 2025. 5. 22.

SQL을 사용할 때 문자열을 일부만 잘라서 사용해야할 때가 있다.

이럴때 사용할 수 있는 SQL 함수들에 대해 알아보겠다.

 

문자열을 볼때 INDEX를 알아야 함수들을 사용하기 편한데, 왼쪽에서 부터 1, 2, 3.. 으로 진행된다.

예를 들어 "HELLO WORLD"라는 문자열이 있을때 "E"의 위치는 2이고, 두번째 "O"의 위치는 8이다.

 

✔ SUBSTRING

SUBSTRING(STRING, START, LENGTH)

STRING을 원하는 시작점에서 원하는 길이만큼 잘라낼 수 있다. START와 LENGTH는 시작점과 길이를 나타낸다. 

 

 

✔ SUBSTR

SUBSTR(STRING, START, END)

STRING을 원하는 시작점에서 원하는 끝점까지 잘라낸다. START와 END는 시작점과 끝점을 나타낸다.

 

✔ LEFT

LEFT(STRING, LENGTH)

STRING의 왼쪽부터 원하는 길이만큼 잘라낸다. LENGTH는 길이를 나타낸다.

 

✔ RIGHT

RIGHT(STRING, LENGTH)

STRING의 오른쪽부터 원하는 길이만큼 잘라낸다. LENGTH는 길이를 나타낸다.

 

✔ SUBSTRING_INDEX

SUBSTRING_INDEX(STRING, SEPARATOR, COUNT)

STRING을 구분자를 기준으로 분리해서 원하는 만큼 잘라낸다. SEPARATOR는 구분자이고 COUNT는 원하는 만큼의 숫자다.

 

💡 예시

테이블 명: TEAM

ID NAME MEMBER TEAM_CODE
1 RED_A KIM, LEE, PARK TR001
2 RED_B SONG, CHOI TR002
3 RED_C JOUNG, CHA TR003
4 BLUE_A CHO, AHN, JEON TB001
5 BLUE_B DO, SHIM TB002

 

SQL문 (SUBSTRING, SUBSTR, LEFT)

SELECT SUBSTRING(TEAM_CODE, 1, 2) AS CODE
     , COUNT(ID) AS COUNT
  FROM TEAM
 GROUP BY CODE;
SELECT SUBSTR(TEAM_CODE, 1, 2) AS CODE
     , COUNT(ID) AS COUNT
  FROM TEAM
 GROUP BY CODE;
SELECT LEFT(TEAM_CODE, 2) AS CODE
     , COUNT(ID) AS COUNT
  FROM TEAM
 GROUP BY CODE;

 

결과

CODE COUNT
TR 3
TB 2

 

SQL문 (RIGHT)

SELECT RIGHT(NAME, 1) AS SUBNAME
     , COUNT(ID) AS COUNT
  FROM TEAM
 GROUB BY SUBNAME;

 

결과

CODE COUNT
A 2
B 2
C 1

 

SQL문 (SUBSTIRNG_INDEX)

SELECT NAME
     , SUBSTRING_INDEX(MEMBER, ',', 1) AS FRIST_MEMBER
  FROM TEAM

 

결과

NAME FRIST_MEMBER
RED_A KIM
RED_B SONG
RED_C JUNGH
BLUE_A CHO
BLUE_B DO

 


📝 관련 문제

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

'MySQL' 카테고리의 다른 글

[MYSQL] 날짜 포맷 (DATE_FORMAT)  (0) 2025.05.21
[MYSQL] NULL 처리 (IFNULL, CASE, COALESCE)  (0) 2025.05.20