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

MySQL REPLACE() 함수로 텍스트 열 값 손쉽게 업데이트하는 방법

MySQL에서는 REPLACE() 함수를 활용하면 UPDATE 문과 함께 사용하여 텍스트 열의 특정 문자열을 다른 문자열로 간편하게 교체할 수 있습니다. 이 글에서는 실제 예제를 통해 텍스트 열 값을 일괄 변경하는 과정을 단계별로 살펴보겠습니다.

1. 테이블 생성하기

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

mysql> create table DemoTable
(
    Code varchar(100)
);
Query OK, 0 rows affected (0.50 sec)

varchar(100) 타입의 Code 열 하나를 가진 DemoTable이라는 테이블을 만들었습니다.

2. 샘플 데이터 삽입하기

INSERT 명령어를 사용해 몇 개의 레코드를 추가합니다.

mysql> insert into DemoTable values('8565-9848-7474');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('9994-6464-8737');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values('6574-9090-7643');
Query OK, 1 row affected (0.17 sec)

3. 현재 데이터 확인하기

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

mysql> select *from DemoTable;

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

+----------------+
| Code           |
+----------------+
| 8565-9848-7474 |
| 9994-6464-8737 |
| 6574-9090-7643 |
+----------------+
3 rows in set (0.00 sec)

4. REPLACE()로 열 값 교체하기

이제 UPDATE 문과 REPLACE() 함수를 조합하여 특정 열 값을 새로운 값으로 교체해 보겠습니다.

mysql> update DemoTable
set Code=replace(Code,'9994-6464-8737','9994-9999-88888');
Query OK, 1 row affected (0.10 sec)
Rows matched : 3 Changed : 1 Warnings : 0

실행 결과를 보면 총 3개의 행이 검색(Rows matched)되었고, 그중 1개 행(Changed)만 실제로 변경되었음을 알 수 있습니다. REPLACE() 함수는 지정한 문자열과 정확히 일치하는 부분만 교체하기 때문입니다.

5. 변경 결과 확인하기

테이블 레코드를 다시 조회하여 변경이 제대로 적용되었는지 확인합니다.

mysql> select *from DemoTable;

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

+-----------------+
| Code            |
+-----------------+
| 8565-9848-7474  |
| 9994-9999-88888 |
| 6574-9090-7643  |
+-----------------+
3 rows in set (0.00 sec)

'9994-6464-8737' 값이 '9994-9999-88888'로 성공적으로 교체된 것을 확인할 수 있습니다.

REPLACE() 함수 문법 정리

REPLACE() 함수의 기본 문법은 다음과 같습니다.

REPLACE(컬럼명, '찾을_문자열', '교체할_문자열')

참고로 WHERE 절을 함께 사용하면 특정 조건에 해당하는 행만 대상으로 교체 작업을 수행할 수 있어, 대용량 테이블에서는 불필요한 전체 스캔을 줄여 성능을 개선할 수 있습니다.