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

MySQL에서 열의 부분 문자열 추출하기 – SUBSTR() 함수 활용법

MySQL에서 특정 열(column)의 일부 문자열만 추출하고 싶다면 SUBSTR() 함수를 사용하면 됩니다. SUBSTR() 함수는 지정한 시작 위치부터 원하는 길이만큼의 문자열을 잘라내어 반환해 줍니다.

1. 테이블 생성하기

먼저 예제에 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable
-> (
-> Title text
-> );
Query OK, 0 rows affected (0.74 sec)

'Title'이라는 TEXT 타입의 열 하나를 가진 'DemoTable' 테이블이 성공적으로 생성되었습니다.

2. 데이터 삽입하기

INSERT 명령어를 사용하여 테이블에 샘플 데이터를 입력합니다.

mysql> insert into DemoTable values('This is a MySQL Database');
Query OK, 1 row affected (0.19 sec)

mysql> insert into DemoTable values('Java is an Object Oriented Programming Language');
Query OK, 1 row affected (0.17 sec)

3. 전체 레코드 조회하기

SELECT 문으로 테이블의 모든 레코드를 확인해 보겠습니다.

mysql> select *from DemoTable;

출력 결과

+-------------------------------------------------+
| Title |
+-------------------------------------------------+
| This is a MySQL Database |
| Java is an Object Oriented Programming Language |
+-------------------------------------------------+
2 rows in set (0.00 sec)

두 개의 문자열이 정상적으로 저장된 것을 확인할 수 있습니다.

4. SUBSTR()로 부분 문자열 추출하기

이제 SUBSTR() 함수를 사용하여 열의 앞 8자리 문자열만 추출하는 쿼리를 실행해 보겠습니다.

mysql> SELECT distinct(substr(Title, 1, 8)) from DemoTable;

여기서 substr(Title, 1, 8)의 의미는 다음과 같습니다.

  • Title: 대상이 되는 열
  • 1: 추출을 시작할 위치 (첫 번째 문자부터)
  • 8: 추출할 문자 수 (8글자)

출력 결과

+-----------------------+
| (substr(Title, 1, 8)) |
+-----------------------+
| This is |
| Java is |
+-----------------------+
2 rows in set (0.00 sec)

각 문자열의 첫 번째 위치부터 8글자씩 잘라낸 결과가 출력되었습니다. 또한 DISTINCT 키워드를 함께 사용하여 중복된 결과가 있다면 자동으로 제거됩니다.

마무리

MySQL의 SUBSTR() 함수는 문자열 데이터에서 필요한 부분만 손쉽게 추출할 수 있는 유용한 도구입니다. 참고로 SUBSTRING() 함수와도 완전히 동일하게 동작하며, 두 함수는 서로 바꿔 사용할 수 있습니다. 로그 데이터 가공, 코드 분리, 요약 텍스트 생성 등 다양한 상황에서 활용해 보시기 바랍니다.