MySQL에서는 REPLACE() 함수를 사용하면 테이블에 저장된 특정 텍스트를 손쉽게 찾아 다른 값으로 교체할 수 있습니다. 이 함수는 UPDATE 문과 함께 사용되며, 대량의 데이터를 한 번에 수정해야 할 때 특히 유용합니다.
1. 테이블 생성하기
먼저 CREATE 명령어를 사용하여 예제용 테이블을 생성합니다.
mysql> CREATE table FindAndReplaceDemo
-> (
-> FirstName varchar(200)
-> );
Query OK, 0 rows affected (0.43 sec)
2. 데이터 삽입하기
테이블 생성이 완료되면 INSERT 명령어를 통해 레코드를 추가합니다.
mysql> INSERT into FindAndReplaceDemo values('john');
Query OK, 1 row affected (0.15 sec)
mysql> INSERT into FindAndReplaceDemo values('smith');
Query OK, 1 row affected (0.17 sec)
mysql> INSERT into FindAndReplaceDemo values('Bob');
Query OK, 1 row affected (0.12 sec)
mysql> INSERT into FindAndReplaceDemo values('carol');
Query OK, 1 row affected (0.18 sec)3. 저장된 데이터 확인하기
SELECT 문을 실행하여 현재 테이블에 저장된 모든 레코드를 조회할 수 있습니다.
mysql> SELECT * from FindAndReplaceDemo;
실행 결과는 다음과 같습니다.
+-----------+
| FirstName |
+-----------+
| john |
| smith |
| Bob |
| carol |
+-----------+
4 rows in set (0.00 sec)
4. REPLACE() 함수로 텍스트 교체하기
이제 REPLACE() 함수를 활용해 'carol'을 'Taylor'로 변경해 보겠습니다. 기본 문법은 아래와 같습니다.
UPDATE yourTableName SET column_name = replace(column_name, 'Old_Value', 'New_Value');
위 문법을 적용한 실제 쿼리는 다음과 같습니다.
mysql> UPDATE FindAndReplaceDemo SET FirstName = replace(FirstName, 'carol', 'Taylor');
Query OK, 1 row affected (0.14 sec)
Rows matched: 4 Changed: 1 Warnings: 0
쿼리 결과를 보면 총 4개 행이 검색되었고, 그중 1개 행이 변경되었음을 확인할 수 있습니다.
5. 변경 결과 확인하기
SELECT 문으로 테이블 내용을 다시 조회해 보겠습니다.
mysql> SELECT * from FindAndReplaceDemo;
실행 결과는 다음과 같습니다.
+-----------+
| FirstName |
+-----------+
| john |
| smith |
| Bob |
| Taylor |
+-----------+
4 rows in set (0.00 sec)
출력 결과에서 확인할 수 있듯이, 'carol'이 성공적으로 'Taylor'로 교체되었습니다.
참고 사항
REPLACE() 함수는 대소문자를 구분한다는 점에 유의하세요. 위 예제에서 'carol'은 소문자였기 때문에 정상적으로 교체되었지만, 'Carol'처럼 대문자가 포함된 값은 별도로 처리해야 합니다. 또한 WHERE 절을 추가하면 특정 조건에 맞는 행만 선택적으로 수정할 수 있으므로, 전체 테이블이 아닌 일부 데이터만 변경하고 싶다면 WHERE 절을 함께 사용하는 것이 안전합니다.