REPLACE() 함수는 문자열 안에서 특정 부분 문자열을 찾아 다른 부분 문자열로 교체하는 MySQL 문자열 함수입니다. 이 함수를 UPDATE 문과 함께 사용하면 테이블에 저장된 데이터를 한 번의 쿼리로 일괄 수정할 수 있으며, 그 결과는 테이블에 영구적으로 반영됩니다.
예제
mysql> Update Student set Father_Name = REPLACE(Father_Name, 'Mr.','Shri ');
Query OK, 5 rows affected (0.06 sec)
Rows matched: 5 Changed: 5 Warnings: 0
mysql> Select Name, Father_Name from Student;
+---------+-----------------+
| Name | Father_Name |
+---------+-----------------+
| Gaurav | Shri Ramesh |
| Aarav | Shri Sanjay |
| Harshit | Shri Lovkesh |
| Gaurav | Shri Ramchander |
| Yashraj | Shri Mohan |
+---------+-----------------+
5 rows in set (0.00 sec)
위 예제의 UPDATE 문은 Student 테이블의 Father_Name 컬럼에서 'Mr.'이라는 문자열을 찾아 모두 'Shri'로 교체했습니다. 실행 결과 5개 행이 성공적으로 변경되었으며, 이후 SELECT 문으로 조회해 보면 Father_Name 값이 'Shri Ramesh', 'Shri Sanjay'처럼 바뀐 것을 확인할 수 있습니다.
REPLACE() 함수의 기본 문법
REPLACE(원본_문자열, 찾을_문자열, 교체할_문자열) 형태로 사용합니다. 교체할 새 문자열은 원래 문자열보다 길어도 무방합니다. 위 예제에서는 'Mr.' 대신 뒤에 공백이 포함된 'Shri '로 교체하여, 호칭 뒤에 오는 이름과 자연스럽게 붙도록 처리했습니다.
활용 시 주의 사항
UPDATE 문에 WHERE 절을 지정하지 않으면 REPLACE()가 테이블의 모든 행에 적용됩니다. 따라서 특정 조건에 해당하는 데이터만 변경하려면 WHERE 절을 함께 사용하는 것이 안전합니다. 또한 중요한 테이블을 수정하기 전에는 백업을 해두거나, SELECT 문으로 REPLACE()의 결과를 미리 확인한 뒤 UPDATE를 실행하는 습관을 들이면 실수를 줄일 수 있습니다.