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

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

오작교 32324

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에서 특정 문자 일괄 치환하기 오작교 32324
공지 레이아웃 편집 후에 변경이 안되는 경우 오작교 31802
공지 XE 전체를 백업 / 복원하기 오작교 51606
58
normal
오작교 9780
57
normal
오작교 11408
56
file
오작교 21593
55
file
오작교 20330
54
normal
오작교 26267
53
normal
오작교 23358
52
normal
오작교 21180
51
image
오작교 23010
50
normal
오작교 20642
49
normal
오작교 22669
48
normal
오작교 28197
47
normal
오작교 22490
46
file
오작교 22612
45
file
오작교 31537
44
normal
오작교 25935
43
normal
오작교 26090
42
normal
오작교 36129
41
normal
오작교 27216
40
normal
오작교 23802
39
normal
오작교 23472