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

MySQL REPLACE 함수로 열의 특정 문자 모두 제거하는 방법

MySQL에서 데이터를 다루다 보면 열(column)에 저장된 값에 불필요한 특수 문자가 섞여 있는 경우가 종종 있습니다. 이럴 때 REPLACE() 함수를 사용하면 특정 문자를 손쉽게 찾아 제거할 수 있습니다. 이번 글에서는 예제 테이블을 만들고, 특수 문자(^)를 일괄 삭제하는 과정을 단계별로 살펴보겠습니다.

1. 테이블 생성하기

먼저 예제에 사용할 테이블을 생성합니다.

mysql> create table DemoTable
    -> (
    -> FirstName varchar(100)
    -> );
Query OK, 0 rows affected (0.41 sec)

DemoTable이라는 이름으로 FirstName varchar(100) 컬럼 하나를 가진 테이블이 성공적으로 생성되었습니다.

2. 샘플 데이터 삽입하기

INSERT 명령어를 사용해 특수 문자(^)가 포함된 레코드를 몇 개 추가합니다.

mysql> insert into DemoTable values('Adam^^^');
Query OK, 1 row affected (0.14 sec)

mysql> insert into DemoTable values('^^^^^^^^Carol');
Query OK, 1 row affected (0.18 sec)

mysql> insert into DemoTable values('Robert^^^^^^');
Query OK, 1 row affected (0.14 sec)

이름 앞뒤로 ^ 문자가 붙어 있는 세 개의 레코드를 삽입했습니다.

3. 현재 데이터 확인하기

SELECT 문으로 테이블의 전체 레코드를 조회합니다.

mysql> select *from DemoTable;

출력 결과

+---------------+
| FirstName     |
+---------------+
| Adam^^^       |
| ^^^^^^^^Carol |
| Robert^^^^^^  |
+---------------+
3 rows in set (0.00 sec)

각 이름마다 ^ 문자가 여러 개 포함되어 있는 것을 확인할 수 있습니다.

4. REPLACE() 함수로 특정 문자 제거하기

이제 UPDATE 문과 REPLACE() 함수를 조합하여 열에 있는 ^ 문자를 모두 제거합니다. REPLACE() 함수는 세 개의 인자를 받습니다.

  • 첫 번째 인자: 대상이 되는 열 또는 문자열
  • 두 번째 인자: 찾을 문자열
  • 세 번째 인자: 대체할 문자열 (제거하려면 빈 문자열 '' 지정)
mysql> update DemoTable set FirstName=replace(FirstName,'^','');
Query OK, 3 rows affected (0.20 sec)
Rows matched: 3  Changed: 3 Warnings: 0

위 쿼리는 FirstName 열의 모든 행에서 ^ 문자를 빈 문자열로 대체하여 사실상 삭제하는 역할을 합니다. 실행 결과 3개의 행이 정상적으로 변경되었습니다.

5. 최종 결과 확인하기

다시 한번 테이블을 조회하여 변경된 데이터를 확인합니다.

mysql> select *from DemoTable;

출력 결과

+-----------+
| FirstName |
+-----------+
| Adam      |
| Carol     |
| Robert    |
+-----------+
3 rows in set (0.00 sec)

모든 이름에서 ^ 문자가 깨끗하게 제거된 것을 볼 수 있습니다.

마무리

MySQL에서 열의 특정 문자를 모두 제거하는 가장 간단한 방법은 REPLACE(열이름, '제거할문자', '') 형태로 UPDATE 문을 작성하는 것입니다. 공백, 하이픈, 특수 기호 등 어떤 문자든 동일한 방식으로 처리할 수 있으므로, 데이터 정제(cleansing) 작업 시 매우 유용하게 활용됩니다.