[MySQL] 원하는 구분자 기준으로 문자열 자르기 : SUBSTRING_INDEX

DongHo Im·2022년 2월 21일
0

SQL

목록 보기
9/11

원하는 구분자 기준으로 문자열 자르기

MySQL document 참고

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                        |
+---------------------------------------+
profile
[DATABASE] 비전공자 출신의 개발 도전!

0개의 댓글