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

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

오작교 32403

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
번호 제목 글쓴이 조회
공지 MYSQL에서 특정 문자 일괄 치환하기 오작교 32403
공지 레이아웃 편집 후에 변경이 안되는 경우 오작교 31887
공지 XE 전체를 백업 / 복원하기 오작교 51708
58
normal
오작교 9825
57
normal
오작교 11485
56
file
오작교 21649
55
file
오작교 20380
54
normal
오작교 26314
53
normal
오작교 23407
52
normal
오작교 21236
51
image
오작교 23067
50
normal
오작교 20705
49
normal
오작교 22717
48
normal
오작교 28253
47
normal
오작교 22547
46
file
오작교 22663
45
file
오작교 31592
44
normal
오작교 25991
43
normal
오작교 26160
42
normal
오작교 36193
41
normal
오작교 27273
40
normal
오작교 23856
39
normal
오작교 23537