Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 테이블 열에서 부분 문자열을 추출하는 방법 (SUBSTR 함수 활용법)

MySQL SUBSTR() 함수로 부분 문자열 추출하기

MySQL 테이블 열의 값을 부분 문자열(substring)로 만들고 싶다면, MySQL에 기본으로 내장되어 있는 SUBSTR() 함수를 사용하면 됩니다. 이 함수는 지정한 시작 위치부터 문자열 끝까지의 문자를 잘라내어 반환합니다.

SUBSTR() 함수 기본 문법

select substr(yourColumnName, AnyValue) as anyVariableName from yourTableName;

여기서 두 번째 인수인 AnyValue는 추출을 시작할 문자 위치를 의미합니다. 문자열 위치는 1부터 시작하며, 시작 위치만 지정하면 해당 위치부터 문자열 끝까지 전체가 반환됩니다.

예제 테이블 생성

SUBSTR() 함수의 동작 방식을 이해하기 위해 먼저 실습용 테이블을 만들어 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> create table SubStringDemo
-> (
-> UserId varchar(200)
-> );
Query OK, 0 rows affected (0.55 sec)

샘플 데이터 삽입

이제 테이블에 몇 개의 레코드를 삽입합니다.

mysql> insert into SubStringDemo values('Bob10015');
Query OK, 1 row affected (0.29 sec)

mysql> insert into SubStringDemo values('Smith0015');
Query OK, 1 row affected (0.22 sec)

mysql> insert into SubStringDemo values('Carol20010');
Query OK, 1 row affected (0.14 sec)

전체 레코드 조회

SELECT 문을 사용하면 테이블에 저장된 모든 레코드를 확인할 수 있습니다.

mysql> select *from SubStringDemo;

실행 결과는 다음과 같습니다.

+------------+
| UserId |
+------------+
| Bob10015 |
| Smith0015 |
| Carol20010 |
+------------+
3 rows in set (0.00 sec)

SUBSTR() 함수 적용하기

이제 UserId 열에서 다섯 번째 문자부터 끝까지를 추출하는 쿼리를 실행해 보겠습니다.

mysql> select substr(UserId,5) as ExtractSubstring from SubStringDemo;

부분 문자열이 추출된 결과는 다음과 같습니다.

+------------------+
| ExtractSubstring |
+------------------+
| 0015 |
| h0015 |
| l20010 |
+------------------+
3 rows in set (0.00 sec)

결과 해석

'Bob10015'는 다섯 번째 문자인 '1'부터 시작하는 '0015'가 반환되었고, 'Smith0015'는 'h0015', 'Carol20010'은 'l20010'이 반환되었습니다. 즉, substr(열이름, 5)는 각 값의 5번째 문자부터 나머지 전체를 잘라내어 반환한다는 것을 확인할 수 있습니다.

참고로 추출할 문자 길이를 제한하고 싶다면 세 번째 인수에 길이를 지정하면 됩니다. 예를 들어 substr(UserId, 5, 2)는 다섯 번째 문자부터 두 글자만 반환하므로, 상황에 맞게 활용하시기 바랍니다.