데이터베이스안에 있는 테이블의 특정 데이터를 변경하는 방법은 update 키워드를 사용해 가능합니다. 그런데 만약 특정 필드안에 있는 모든 리스트를 기준으로 특정 문구를 다른 것으로 치환, 변경하려면 어떻게 해야할까요? 하나씩 하는 방법이 아닌 전체를 규칙적으로 바꾸는 경우 replace() 함수를 사용할 수 있씁니다.

# 언제 이런 경우가 발생할까요?
예를들어 필드안에는 전화번호가 저장되어 있는데 이 안에 있는 모든 - 대시기호를 제거해야하는 경우가 있습니다. 이런 경우 하나 하나 - 대시기호를 찾아서 없애는 작업을 한다면 굉장히 시간이 오래걸리고 비효율적일 것입니다. 이 경우에는 replace() 함수를 사용해 전체 데이터를 일괄로 처리하는 방법이 필요합니다. 그 외에도 비슷한 경우가 많을 수 있겠죠.

아래 예제를 참고해주세요. 아래 예제는 만약 데이터베이스 정보가 아래와 같은 경우.... 해당 필드에 속한 best 단어를 모두 good으로 바꾸기 위한 예제입니다.


* DB 정보


1. 테이블명 : product
2. 필드명 : p_quality
3. 찾을 텍스트명 : 'best'
4. 변경 될 텍스트명 : 'good'

<?php
UPDATE product SET p_quality = replace(p_quality, "best", "good");
?>


정리하자면....

UPDATE 테이블명 SET 필드명 = replace(필드명, "찾을 텍스트명", "변경 텍스트명");

! 꼭 알아두셔야 할 점이라면 필드명을 모두 변경하기 전에는 반드시 백업하시기 바랍니다. 혹시라면 잘못 수행할 경우 해당 컬럼의 모든 텍스트가 변경되기때문에 주의가 필요합니다.