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

MySQL REPLACE() 함수로 여러 레코드의 문자열을 한 번에 교체하는 방법

MySQL의 REPLACE() 함수는 특정 문자열을 다른 문자열로 손쉽게 교체할 수 있는 유용한 도구입니다. 이 함수를 제대로 이해하기 위해, 먼저 샘플 데이터가 들어 있는 테이블을 만들어 보겠습니다.

1. 테이블 생성하기

다음 쿼리를 사용하여 테이블을 생성합니다.

mysql> create table replaceDemo
   -> (
   -> Name varchar(200)
   -> );
Query OK, 0 rows affected (0.55 sec)

2. 샘플 데이터 삽입하기

INSERT 명령을 사용하여 몇 개의 레코드를 추가합니다.

mysql> insert into replaceDemo values('John');
Query OK, 1 row affected (0.17 sec)

mysql> insert into replaceDemo values('Demo');
Query OK, 1 row affected (0.16 sec)

mysql> insert into replaceDemo values('Smith');
Query OK, 1 row affected (0.13 sec)

mysql> insert into replaceDemo values('Demo');
Query OK, 1 row affected (0.14 sec)

mysql> insert into replaceDemo values('Carol');
Query OK, 1 row affected (0.14 sec)

3. 현재 데이터 확인하기

테이블 'replaceDemo'에 저장된 레코드를 조회해 보겠습니다.

mysql> select *from replaceDemo;

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

+-------+
| Name  |
+-------+
| John  |
| Demo  |
| Smith |
| Demo  |
| Carol |
+-------+
5 rows in set (0.00 sec)

4. REPLACE() 함수로 문자열 교체하기

위 결과를 보면 테이블에 'Demo'라는 값이 두 번 중복되어 있습니다. 이제 REPLACE() 함수를 사용하여 'Demo'를 'Amit'으로 일괄 변경해 보겠습니다.

mysql> UPDATE replaceDemo
   -> SET Name = REPLACE (Name, 'Demo', 'Amit')
   -> WHERE Name LIKE 'Demo';
Query OK, 2 rows affected (0.18 sec)
Rows matched: 2  Changed: 2  Warnings: 0

5. 변경 결과 확인하기

'Demo'가 'Amit'으로 정상적으로 교체되었는지 다시 조회해 봅니다.

mysql> select *from replaceDemo;

출력 결과는 다음과 같습니다.

+-------+
| Name  |
+-------+
| John  |
| Amit  |
| Smith |
| Amit  |
| Carol |
+-------+
5 rows in set (0.00 sec)

결과에서 확인할 수 있듯이, 'Demo'였던 두 개의 레코드가 모두 'Amit'으로 성공적으로 변경되었습니다. 이처럼 REPLACE() 함수를 UPDATE 문과 함께 사용하면 조건에 맞는 여러 레코드의 문자열을 한 번의 쿼리로 간편하게 교체할 수 있습니다.