본문 바로가기

DB

Mysql 문자열 나누기 SUBSTRING, SUBSTRING_INDEX

728x90

Mysql의 문자열을 나누는 함수는 글자 수로 나누는 SUBSTRING, 구분자로 나누는 SUBSTRING_INDEX가 있다.

 

SUBSTRING 사용 형태

 

SUBSTRING(문자열, 시작위치, 가져올 문자수)

3번째 인덱스인 가져올 문자수를 비워두면 문자열의 끝까지 가져온다.

시작위치가 음수라면 끝에서부터 역순으로 가져온다.

 

SUBSTRING 예제

SELECT SUBSTRING('가나다라마바사임마', 3)
> 다라마바사임마

SELECT SUBSTRING('가나다라마바사임마', -3)
> 사임마

SELECT SUBSTRING('가나다라마바사임마', 3, 5)
> 다라마바사

SELECT SUBSTRING('가나다라마바사임마', 3, 1)
> 다

SELECT SUBSTRING('가나다라마바사임마', -3, 2)
> 사임

 

 

SUBSTRING_INDEX 사용 형태

SUBSTRING_INDEX(문자열, 구분자, 가져올 수)

가져올 수는 구분자로 나눠진 덩어리를 몇개 까지 가져오는지에 대한 값을 말한다.

 

 

SUBSTRING_INDEX 예제

SELECT SUBSTRING_INDEX('가나 다라 마바 사', ' ', 3)  
> 가나 다라 마바

SELECT SUBSTRING_INDEX('가나 다라 마바 사', ' ', -3)  
> 다라 마바 사

SELECT SUBSTRING_INDEX('가나,다라,마바,사', ',', 1)
> 가나

SELECT SUBSTRING_INDEX('가나,다라,마바,사', ' ', 1) 
> 가나,다라,마바,사

 

SQL에 split같은 함수가 없기 때문에 SUBSTRING_INDEX을 이용하면 배열 리턴은 아니지만 구분값으로 나눠진 문자를 가져올 수 있다.

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('가나 다라 마바 사', ' ', 3), ' ', -1)  
> 마바

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('가나 다라 마바 사', ' ', 2), ' ', -1)  
> 다라

 

728x90

'DB' 카테고리의 다른 글

Mysql 인덱스에 대해서  (0) 2022.04.04
Mysql, MariaDB Incorrect string value 이모티콘 이모지 에러  (2) 2021.09.27
MySQL 이벤트 스케줄러 등록  (0) 2021.08.25
MongoDB 설치 - Window  (0) 2020.11.29