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 문과 함께 사용하면 조건에 맞는 여러 레코드의 문자열을 한 번의 쿼리로 간편하게 교체할 수 있습니다.