MySQL에서 컬럼 값에 포함된 특정 텍스트(부분 문자열)를 제거하려면 REPLACE() 함수를 사용하면 됩니다. REPLACE() 함수는 지정한 문자열을 찾아 다른 문자열로 치환하는 기능을 하며, 빈 문자열('')로 치환하면 사실상 해당 텍스트를 삭제하는 효과를 얻을 수 있습니다.
REPLACE() 함수 기본 문법
UPDATE yourTableName
SET yourColumnName = REPLACE(yourColumnName, 'yourValue', '');
위 문법에서 세 번째 인자에 빈 문자열을 넣으면, 해당 컬럼 값에서 찾은 텍스트가 그대로 제거됩니다.
1단계: 예제 테이블 생성
먼저 실습에 사용할 테이블을 생성합니다.
mysql> CREATE TABLE removePartialTextDemo
-> (
-> JavaVersionDetails VARCHAR(100)
-> );
Query OK, 0 rows affected (0.51 sec)
2단계: 데이터 삽입
INSERT 명령어를 사용해 자바 버전 정보가 담긴 레코드를 여러 개 삽입합니다.
mysql> INSERT INTO removePartialTextDemo VALUES('Java Version 1.0');
Query OK, 1 row affected (0.50 sec)
mysql> INSERT INTO removePartialTextDemo VALUES('Java Version 1.1');
Query OK, 1 row affected (0.23 sec)
mysql> INSERT INTO removePartialTextDemo VALUES('Java Version 1.2');
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO removePartialTextDemo VALUES('Java Version 1.3');
Query OK, 1 row affected (0.27 sec)
mysql> INSERT INTO removePartialTextDemo VALUES('Java Version 1.4');
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO removePartialTextDemo VALUES('Java Version 7');
Query OK, 1 row affected (0.11 sec)3단계: 현재 데이터 확인
SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> SELECT * FROM removePartialTextDemo;
실행 결과는 다음과 같습니다.
+--------------------+
| JavaVersionDetails |
+--------------------+
| Java Version 1.0 |
| Java Version 1.1 |
| Java Version 1.2 |
| Java Version 1.3 |
| Java Version 1.4 |
| Java Version 7 |
+--------------------+
6 rows in set (0.00 sec)
4단계: REPLACE()로 부분 텍스트 제거
이제 UPDATE 문과 REPLACE() 함수를 조합하여 값에서 'Java Version '이라는 공통 접두사를 제거하고 버전 숫자만 남겨보겠습니다.
mysql> UPDATE removePartialTextDemo SET
JavaVersionDetails = REPLACE(JavaVersionDetails, 'Java Version ', '');
Query OK, 6 rows affected (0.09 sec)
Rows matched: 6 Changed: 6 Warnings: 0
5단계: 결과 확인
테이블을 다시 조회하여 부분 텍스트가 정상적으로 제거되었는지 확인합니다.
mysql> SELECT * FROM removePartialTextDemo;
실행 결과는 다음과 같습니다.
+--------------------+
| JavaVersionDetails |
+--------------------+
| 1.0 |
| 1.1 |
| 1.2 |
| 1.3 |
| 1.4 |
| 7 |
+--------------------+
6 rows in set (0.00 sec)
위 출력 결과를 보면 모든 레코드에서 'Java Version ' 텍스트가 제거되고 버전 번호만 남은 것을 확인할 수 있습니다. 이처럼 REPLACE() 함수와 UPDATE 문을 함께 사용하면 대량의 데이터에서도 특정 문자열을 한 번에 간편하게 제거할 수 있습니다.