MySQL에서 처음 20자 이후의 모든 문자 추출하기
데이터베이스 작업을 하다 보면 문자열 컬럼에서 특정 위치 이후의 내용만 필요한 경우가 자주 있습니다. MySQL에서는 SUBSTRING() 함수를 사용하면 간단하게 해결할 수 있습니다. 이번 글에서는 예제 테이블을 생성하고, 컬럼 값에서 처음 20자를 제외한 나머지 문자열을 가져오는 방법을 단계별로 살펴보겠습니다.
1단계: 테이블 생성
먼저 예제에 사용할 테이블을 생성합니다.
mysql> create table DemoTable
(
Title text
);
Query OK, 0 rows affected (0.86 sec)
2단계: 레코드 삽입
INSERT 명령문으로 테이블에 샘플 데이터를 추가합니다.
mysql> insert into DemoTable values('C is a good programming language to start');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values('Java is good with data structure and algorithm');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values('Coding is very important');
Query OK, 1 row affected (0.20 sec)
3단계: 전체 레코드 확인
SELECT 문으로 테이블에 저장된 모든 레코드를 조회합니다.
mysql> select *from DemoTable;
실행 결과는 다음과 같습니다.
+------------------------------------------------+ | Title | +------------------------------------------------+ | C is a good programming language to start | | Java is good with data structure and algorithm | | Coding is very important | +------------------------------------------------+ 3 rows in set (0.00 sec)
4단계: 처음 20자 이후의 문자 선택
컬럼에서 처음 20자 이후의 모든 문자를 가져오려면 다음과 같이 SUBSTRING(컬럼명 FROM 시작 위치) 구문을 사용합니다. 시작 위치가 20이므로 20번째 문자부터 문자열 끝까지의 내용이 반환됩니다.
mysql> select substring(Title from 20) from DemoTable;
실행 결과는 다음과 같습니다.
+-----------------------------+ | substring(Title from 20) | +-----------------------------+ | ming language to start | | ata structure and algorithm | | rtant | +-----------------------------+ 3 rows in set (0.00 sec)
참고: SUBSTRING 함수의 다양한 사용 형태
SUBSTRING() 함수는 목적에 따라 여러 가지 형태로 활용할 수 있습니다.
SUBSTRING(str, pos): pos 위치부터 문자열 끝까지 반환SUBSTRING(str FROM pos): 위와 동일 (SQL 표준 문법)SUBSTRING(str, pos, len): pos 위치부터 len 길이만큼 반환SUBSTRING(str FROM pos FOR len): 위와 동일 (SQL 표준 문법)
시작 위치(pos)가 음수이면 문자열 끝에서부터 거꾸로 계산된 지점부터 추출되며, pos가 0이거나 문자열 길이보다 클 경우에는 빈 문자열이 반환됩니다.
이처럼 SUBSTRING 함수 하나만으로도 문자열의 원하는 부분을 손쉽게 잘라낼 수 있습니다. 게시글 요약문 생성, 로그 데이터 가공 등 다양한 실무 상황에서 유용하게 활용해 보시기 바랍니다.