본문 바로가기
DataBase

MySql - 특정 문자 위치 기준, 문자열 자르기(substr, position, substring_index)

by 맑은안개 2022. 8. 31.

MySql 특정 문자 위치 기준, 문자열 자르기

다음의 UUID 가 있다. "-" 문자를 기준으로 앞이나 혹은 뒤를 자르려고 한다.

SET @ID = uuid();
SELECT @ID

f179a851-28fa-11ed-b50a-0242ac110003

이 때, MySql은 substr, position, substring_index 함수를 제공하는데 이를 활용해보자.

1. SUBSTR + POSITION

SELECT SUBSTR(@ID, POSITION("-" IN @ID)+1, LENGTH (@ID));

28fa-11ed-b50a-0242ac110003
  • 여기서 POSITION은 왼쪽에서 오른쪽으로 검색하므로, 오른쪽 부터 시작되는 특수문자를 접근할 때 문제가 된다.

2. SUBSTRING_INDEX

SUBSTRING_INDEX(str,delim,count)

위 문제를 해결하기 위한 방안으로 SUBSTRING_INDEX 함수를 사용한다.

select SUBSTRING_INDEX(@ID, "-", 1)

f179a851
select SUBSTRING_INDEX(@ID, "-", -1)

0242ac110003
select SUBSTRING_INDEX(@ID, "-", 2)

f179a851-28fa
select SUBSTRING_INDEX(@ID, "-", -2)

b50a-0242ac110003
  • 3번째 인자에 양수, 음수기호를 사용하여 왼쪽부터 혹은 오른쪽부터 접근하여 문자열을 자른다.
반응형