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

MySQL SUBSTRING() 함수로 필드에서 부분 문자열 추출하는 방법

MySQL에서는 SUBSTRING() 함수를 사용하면 테이블 필드(컬럼)에 저장된 문자열 중 원하는 부분만 손쉽게 추출할 수 있습니다. 긴 텍스트에서 제목이나 요약문처럼 필요한 구간만 가져올 때 매우 유용합니다.

SUBSTRING() 기본 문법

SELECT SUBSTRING(yourColumnName, yourStartingPosition, yourLength) FROM yourTableName;

각 인자의 의미는 다음과 같습니다.

- 첫 번째 인자: 대상이 되는 컬럼명
- 두 번째 인자: 추출을 시작할 위치 (1부터 시작)
- 세 번째 인자: 반환받을 문자 수(길이)

예제 테이블 생성

먼저 실습에 사용할 테이블을 만들어 보겠습니다.

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 필드에서 부분 문자열을 추출해 보겠습니다.

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)

위 쿼리는 각 Title 값의 첫 번째 문자부터 21자리까지 잘라서 반환합니다. 그 결과 'MySQL is a relational'과 'MongoDB is a popular'라는 부분 문자열이 출력된 것을 확인할 수 있습니다.

시작 위치나 길이 값을 조절하면 원하는 구간의 문자열을 자유롭게 추출할 수 있으며, WHERE 절과 함께 사용하면 조건에 맞는 데이터의 일부만 가공해서 조회하는 것도 가능합니다.