반응형
원하는 구분자 기준으로 문자열 자르기
Mysql에서는 다양한 문자열 자르는 구문이 존재한다. 하지만 특정 문자를 기준으로 문자열을 자를 수 있는 방법이 있다.
SUBSTRING_INDEX구문
SUBSTRING_INDEX(문자열, 구분자, 구분자 인덱스)
- 문자열 : 원하는 문자열(대상 칼럼)
- 구분자 : 구분자(구분을 나눌 특정 문자)
- 구분자 인덱스 : 구분자 순번
- 양의 정수 입력 : 왼쪽부터 오른쪽으로 인덱스
- 음의 정수 입력 : 오른쪽부터 왼쪽으로 인덱스
// 기본 데이터
mysql> SELECT "test123@test123.com" as email;
+---------------------------------------+
| email |
+---------------------------------------+
| test123@test123.com |
+---------------------------------------+
1. 양의 정수 입력 시 첫 번째 구분자로 나뉜 문자열 가져오기
mysql> SELECT "test123@test123.com" as email;
+---------------------------------------+
| email |
+---------------------------------------+
| test123@test123.com |
+---------------------------------------+
mysql> SELECT SUBSTRING_INDEX("test123@test123.com",'1',1);
+----------------------------------------------+
| SUBSTRING_INDEX("test123@test123.com",'1',1) |
+----------------------------------------------+
| test |
+----------------------------------------------+
양의 정수 입력 시 왼쪽부터 특정 문자열 기준으로 자른다.
2. 양의 정수 입력 시두 번째 구분자로 나뉜 문자열 가져오기
mysql> SELECT "test123@test123.com" as email;
+---------------------------------------+
| email |
+---------------------------------------+
| test123@test123.com |
+---------------------------------------+
mysql> SELECT SUBSTRING_INDEX("test123@test123.com",'1',2) as email;
+---------------------------------------+
| email |
+---------------------------------------+
| test123@test |
+---------------------------------------+
양의 정수 입력 시 왼쪽부터 특정 문자열 기준으로 자른다.
3. 음의 정수 입력 시 첫 번째 구분자로 나뉜 문자열 가져오기
mysql> SELECT "test123@test123.com" as email;
+---------------------------------------+
| email |
+---------------------------------------+
| test123@test123.com |
+---------------------------------------+
mysql> SELECT SUBSTRING_INDEX("test123@test123.com",'1',-1) as email;
+---------------------------------------+
| email |
+---------------------------------------+
| 23.com |
+---------------------------------------+
4. 음의 정수 입력 시 두 번째 구분자로 나뉜 문자열 가져오기
mysql> SELECT "test123@test123.com" as email;
+---------------------------------------+
| email |
+---------------------------------------+
| test123@test123.com |
+---------------------------------------+
mysql> SELECT SUBSTRING_INDEX("test123@test123.com",'1',-2) as email;
+---------------------------------------+
| email |
+---------------------------------------+
| 23@test123.com |
+---------------------------------------+
반응형
'DB > MySQL' 카테고리의 다른 글
[MySQL] SQL ROUND, FLOOR, CEIL 함수 (0) | 2022.04.01 |
---|---|
[MySQL] SQL 문자열 자르기 - SUBSTR / SUBSTRING / LEFT / RIGHT (0) | 2022.04.01 |
[MySQL] ORDER BY 특정 값 우선 정렬 하기 (ORDER BY FIELD) (0) | 2022.04.01 |
[MySQL] 저장 프로시저 (Stored Procedure) (0) | 2022.04.01 |
[MySQL] 두 날짜 사이 일수, 주말(평일) 일수 구하기 (0) | 2022.04.01 |