• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
공지

MYSQL에서 특정 문자 일괄 치환하기

오작교 32266

0

MySQL REPLACE 레코드 데이터 치환하기(REPLACE)


게시판 데이터에 첨부파일 경로가 변경이 되었거나 그 외 일괄 변경이 필요한 경우 REPLACE 함수를 이용해 쉽게 DB 데이터를 변경 할 수 있습니다.
예제는 myTable이라는 테이블의 content 데이터 중 https://예전도메인.co.kr 문자를 https://현재도메인.co.kr으로 치환하는 과정입니다.
 
1. 변경할 데이터 조회 하기

우선 변경 될 대상의 레코드를 확인하시기 바랍니다. 간혹 의도치 않은 데이터가 변경 되는 것을 방지하기 위한 확인 작업입니다.

1
SELECT * FROM myTable WHERE content LIKE '%https://예전도메인.co.kr%';


2. REPLACE로 치환 될 데이터 확인 (SELECT)
문자를 치환한 후 문제가 발생하는 것을 방지하기 위해 SELECT 문으로 치환 후 대상 값을 확인합니다.
이때 SElECT문으로 조회하는 것이기 때문에 REPLACE 함수로 인한 데이터 변경은 없습니다.

1
2
3
SELECT REPLACE(content, 'https://예전도메인.co.kr', 'https://현재도메인.co.kr') AS content
FROM myTable
WHERE content LIKE '%https://예전도메인.co.kr%';


3. 데이터 치환 실행하기 (UPDATE)

1번과 2번에서 모두 이상이 없다면 실제로 치환을 실행합니다.

1
2
3
4
5
6
UPDATE myTable SET content = REPLACE(content, 'https://예전도메인.co.kr', 'https://현재도메인.co.kr');
 
또는
 
UPDATE myTable SET content = REPLACE(content, 'https://예전도메인.co.kr', 'https://현재도메인.co.kr')
WHERE content LIKE '%https://예전도메인.co.kr%';

참고로 조건을 추가하고 싶으시다면 1, 2과 같이 쿼리문 뒤에 WHERE 절을 추가해주시면 됩니다. 위 예제는 조건이 없는 전체 데이터를 대상으로한 내용입니다.

 

 

실제 사용 예:

update xe_documents set content=replace(content,'https://예전도메인.com/','https://수정도메인:9000/');

공유스크랩
0

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?

목록

공유

facebooktwitterpinterestbandkakao story
검색어 : 202408
번호 제목 글쓴이 조회
공지 MYSQL에서 특정 문자 일괄 치환하기 오작교 32266
공지 레이아웃 편집 후에 변경이 안되는 경우 오작교 31745
공지 XE 전체를 백업 / 복원하기 오작교 51541
58
normal
오작교 9735
57
normal
오작교 11365
56
file
오작교 21555
55
file
오작교 20291
54
normal
오작교 26222
53
normal
오작교 23324
52
normal
오작교 21137
51
image
오작교 22980
50
normal
오작교 20608
49
normal
오작교 22623
48
normal
오작교 28157
47
normal
오작교 22450
46
file
오작교 22567
45
file
오작교 31503
44
normal
오작교 25893
43
normal
오작교 26048
42
normal
오작교 36094
41
normal
오작교 27174
40
normal
오작교 23767
39
normal
오작교 23438