MySQL에서 열 값의 첫 번째 단어만 제거하기
열 값에서 첫 번째 단어만 제거하려면 SUBSTRING() 함수와 LOCATE() 함수를 함께 사용하면 됩니다. LOCATE()로 첫 번째 공백의 위치를 찾은 후, 그다음 문자부터 문자열을 잘라내는 방식입니다.
기본 문법
SELECT SUBSTRING(yourColumnName, LOCATE(' ', yourColumnName)+1) AS anyAliasName FROM yourTableName;
동작 원리
- LOCATE(' ', 컬럼명) : 문자열에서 첫 번째 공백의 위치를 반환합니다.
- +1 : 공백 바로 다음 문자부터 추출하기 위해 위치에 1을 더합니다.
- SUBSTRING(컬럼명, 위치) : 지정한 위치부터 문자열 끝까지의 부분 문자열을 반환합니다.
예제 테이블 생성
먼저 테이블을 생성해 보겠습니다.
mysql> CREATE TABLE DemoTable
(
Title text
);
Query OK, 0 rows affected (0.50 sec)
INSERT 명령을 사용하여 테이블에 레코드를 삽입합니다.
mysql> INSERT INTO DemoTable VALUES('Java in Depth');
Query OK, 1 row affected (0.49 sec)
mysql> INSERT INTO DemoTable VALUES('C++ is an object oriented programming language');
Query OK, 1 row affected (0.47 sec)
mysql> INSERT INTO DemoTable VALUES('MySQL is a relational database');
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable VALUES('Python with data structure');
Query OK, 1 row affected (0.24 sec)
SELECT 문으로 테이블의 모든 레코드를 조회합니다.
mysql> SELECT *FROM DemoTable;
위 쿼리는 다음과 같은 결과를 출력합니다.
+------------------------------------------------+ | Title | +------------------------------------------------+ | Java in Depth | | C++ is an object oriented programming language | | MySQL is a relational database | | Python with data structure | +------------------------------------------------+ 4 rows in set (0.00 sec)
첫 번째 단어를 제거하는 쿼리 실행
다음은 열 값에서 첫 번째 단어를 제거하는 쿼리입니다.
mysql> SELECT SUBSTRING(Title, LOCATE(' ', Title)+1) AS RemoveFirstWord FROM DemoTable;
실행 결과는 다음과 같습니다.
+--------------------------------------------+ | RemoveFirstWord | +--------------------------------------------+ | in Depth | | is an object oriented programming language | | is a relational database | | with data structure | +--------------------------------------------+ 4 rows in set (0.00 sec)
출력 결과를 확인해 보면 각 Title 값에서 첫 번째 단어가 제거되고, 첫 번째 공백 이후의 나머지 문자열만 반환된 것을 알 수 있습니다. 이처럼 SUBSTRING()과 LOCATE()의 조합은 별도의 복잡한 처리 없이도 문자열 앞부분의 특정 단어를 손쉽게 제거할 수 있는 유용한 방법입니다.