MySQL의 REPLACE() 함수는 문자열 안에 포함된 특정 부분 문자열을 다른 부분 문자열로 모두 치환할 때 사용합니다. 찾으려는 문자열이 원본 안에 여러 번 등장하더라도 해당 횟수만큼 전부 교체해 줍니다.
REPLACE() 함수 문법
REPLACE(str, find_string, replace_with)
각 인자의 의미는 다음과 같습니다.
- str: 치환 작업을 수행할 원본 문자열입니다.
- find_string: 원본 문자열(str) 안에 한 번 이상 포함되어 있는, 찾고자 하는 부분 문자열입니다.
- replace_with: find_string이 발견될 때마다 그 자리를 대신할 부분 문자열입니다.
사용 예제
다음 예제는 'Ram, My Name is Ram'이라는 문자열에서 'Ram'을 'Shyam'으로 모두 바꾸는 쿼리입니다.
mysql> Select REPLACE('Ram, My Name is Ram', 'Ram', 'Shyam');
+------------------------------------------------+
| REPLACE('Ram, My Name is Ram', 'Ram', 'Shyam') |
+------------------------------------------------+
| Shyam, My Name is Shyam |
+------------------------------------------------+
1 row in set (0.00 sec)실행 결과를 보면 문자열에 포함된 두 개의 'Ram'이 모두 'Shyam'으로 변경된 것을 확인할 수 있습니다.
추가 팁
REPLACE() 함수는 대소문자를 구분하며, UPDATE 문과 함께 사용하면 테이블에 저장된 데이터를 일괄적으로 수정할 수도 있습니다.
UPDATE table_name SET column_name = REPLACE(column_name, 'old_value', 'new_value');
이처럼 REPLACE() 함수는 단순한 문자열 가공부터 실무적인 데이터 정제 작업까지 폭넓게 활용할 수 있는 유용한 함수입니다.