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

MySQL SUBSTRING() 함수로 필드에서 문자열 일부 추출하기

MySQL에서는 SUBSTRING() 함수를 사용하면 필드(컬럼)에 저장된 문자열 중 원하는 부분만 간단하게 추출할 수 있습니다. 로그 데이터 가공, 요약문 생성, 특정 패턴의 값 잘라내기 등 다양한 상황에서 유용하게 활용됩니다.

SUBSTRING() 기본 문법

SUBSTRING() 함수의 기본적인 사용 형식은 다음과 같습니다.

select substring(yourColumnName, yourStartingIndex, yourLength) from yourTableName;

각 인자의 의미는 아래와 같습니다.

- yourColumnName: 문자열을 추출할 대상 컬럼명
- yourStartingIndex: 추출을 시작할 위치 (MySQL은 1부터 시작)
- yourLength: 시작 위치부터 가져올 문자 수

예제 테이블 생성하기

먼저 실습용 테이블을 생성합니다.

mysql> create table DemoTable
    (
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Title longtext
    );
Query OK, 0 rows affected (0.57 sec)

레코드 삽입

INSERT 명령어를 사용해 테이블에 데이터를 추가합니다.

mysql> insert into DemoTable(Title) values('MySQL is a relational database management system');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable(Title) values('MongoDB is a popular No SQL database');
Query OK, 1 row affected (0.18 sec)

저장된 데이터 확인

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

mysql> select * from DemoTable;

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

+----+--------------------------------------------------+
| Id | Title                                            |
+----+--------------------------------------------------+
| 1  | MySQL is a relational database management system |
| 2  | MongoDB is a popular No SQL database             |
+----+--------------------------------------------------+
2 rows in set (0.00 sec)

SUBSTRING() 함수 적용하기

이제 SUBSTRING() 함수를 필드에 직접 적용해 보겠습니다. 아래 쿼리는 Title 컬럼의 첫 번째 문자부터 21글자까지 추출합니다.

mysql> select substring(Title,1,21) from DemoTable;

실행 결과:

+-----------------------+
| substring(Title,1,21) |
+-----------------------+
| MySQL is a relational |
| MongoDB is a popular  |
+-----------------------+
2 rows in set (0.00 sec)

정리

SUBSTRING() 함수는 세 개의 인자를 받으며, 두 번째 인자인 시작 위치는 1부터 카운트된다는 점을 기억해야 합니다. 또한 세 번째 인자는 끝나는 위치가 아니라 가져올 문자의 개수(길이)라는 점도 주의하세요. 이 두 가지만 유의하면 복잡한 문자열 처리 작업도 손쉽게 해결할 수 있습니다.