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

MySQL 필드에서 첫 번째 단어를 추출하는 방법 – SUBSTRING_INDEX() 함수 활용

MySQL에서 특정 필드(컬럼)에 저장된 문자열의 첫 번째 단어만 추출하고 싶다면, 내장 함수인 SUBSTRING_INDEX()를 사용하면 됩니다. 이 함수는 구분자(delimiter)를 기준으로 문자열을 나누고, 지정한 위치까지의 부분 문자열을 반환합니다.

SUBSTRING_INDEX() 기본 문법

SELECT SUBSTRING_INDEX(yourColumnName, ' ', 1) AS anyVariableName FROM yourTableName;

위 쿼리에서 마지막 인자로 1을 사용하면 첫 번째 단어를 반환합니다. 만약 -1을 입력하면 반대로 마지막 단어를 추출할 수 있습니다.

예제 테이블 생성하기

개념을 이해하기 위해 먼저 테스트용 테이블을 생성해 보겠습니다. 아래는 테이블 생성 쿼리입니다.

mysql> create table FirstWordDemo
   -> (
   -> AllWords longtext
   -> );
Query OK, 0 rows affected (0.83 sec)

데이터 삽입하기

이제 INSERT 명령을 사용해 몇 개의 문장을 테이블에 저장합니다.

mysql> insert into FirstWordDemo values('This is the first MySQL Query');
Query OK, 1 row affected (0.11 sec)

mysql> insert into FirstWordDemo values('MySQL is a Relational Database');
Query OK, 1 row affected (0.17 sec)

mysql> insert into FirstWordDemo values('FirstWord is not correct');
Query OK, 1 row affected (0.21 sec)

저장된 전체 레코드 확인하기

SELECT 문을 사용하여 테이블에 저장된 모든 레코드를 조회해 보겠습니다.

mysql> select *from FirstWordDemo;

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

+--------------------------------+
| AllWords                       |
+--------------------------------+
| This is the first MySQL Query  |
| MySQL is a Relational Database |
| FirstWord is not correct       |
+--------------------------------+
3 rows in set (0.00 sec)

첫 번째 단어 추출 쿼리 실행하기

이제 앞서 소개한 SUBSTRING_INDEX() 문법을 적용하여 각 필드에서 첫 번째 단어만 추출해 보겠습니다.

mysql> select SUBSTRING_INDEX(AllWords, ' ', 1) as MyFirstWordResult from FirstWordDemo;

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

+-------------------+
| MyFirstWordResult |
+-------------------+
| This              |
| MySQL             |
| FirstWord         |
+-------------------+
3 rows in set (0.00 sec)

마무리 정리

SUBSTRING_INDEX(컬럼명, ' ', 1)은 공백을 구분자로 사용해 첫 번째 단어를 손쉽게 추출합니다. 반대로 -1을 넣으면 마지막 단어를 얻을 수 있으므로, 상황에 맞게 활용하면 문자열 처리 작업이 한결 편리해집니다.