728x90
MySQL DB 테이블 내에 특정 필드안에 포함된 문자열을 다른 걸로 바꿔야 할일이 발생했다.
예를 들어 URL 을 가진 필드값이 'http://addr1.com/abc/cde/efg' 를 'http://addr2.com/abc/cde/efg' 로 변경한다. 변경해야할 시나리오는 문자열 앞부분만 바꿔주면 되는 상황이다. (addr1 -> addr2)
갯수를 세어보니 해당 데이터 건수가 1만건이 넘어가서 이걸 프로그램을 짜야하나 싶었다.
그런데 찾아보니 update 문에 replace 함수를 사용할 수가 있었다.
update [테이블명]
set
변경할필드명 = replace(변경할필드명, '이전문자열', '새로운문자열')
그래서 다음과 같이 전체 문자열에서 변경할 문자열만 지정해서 적용하니 생각보다 빨리 처리된다.
update tb_file_data
set file_url = replace(file_url, ' addr1.com ', ' addr2.com ') where CREATE_DATETIME between '2018-12-31' and '2020-03-01'; |
참고 사이트를 확인해보니, replace 함수는 insert 나 update 문에서만 사용이 가능하다고 한다. 또한 replace 문 이랑은 구분해야 한다.
참고
https://www.mysqltutorial.org/mysql-string-replace-function.aspx
'Engineering > DB' 카테고리의 다른 글
[MSSQL] 특정 테이블에서 날짜 필드로 삭제하는 StoreProcedure (0) | 2020.10.05 |
---|---|
SQL LEFT JOIN 간단 예제 (0) | 2018.04.20 |
CentOS 7 에서 MySQL 5.6 설치 (0) | 2016.02.22 |
mysql sql 파일을 database 에 insert (0) | 2015.11.11 |
jedis sample source (0) | 2014.10.08 |