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번째 인자에 양수, 음수기호를 사용하여 왼쪽부터 혹은 오른쪽부터 접근하여 문자열을 자른다.
반응형
'DataBase' 카테고리의 다른 글
PostgreSQL 13 설치 with docker-compose (0) | 2023.02.05 |
---|---|
MySql - AUTO_INCREMENT 초기화 방법과 유의사항 (0) | 2022.09.02 |
Oracle - sysdate timezone 목록 조회 및 변경 (0) | 2022.07.04 |
오라클 날짜 계산 방법 예제 및 계산 시 유의할 점 (CURRENT_DATE VS SYSDATE ) (1) | 2022.01.29 |
오라클 연속된 날짜 레코드 생성하기( EXTRACT, LEVEL 활용법 ) (0) | 2022.01.28 |