묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
DB 쿼리 관련해서....
2012.11.25 14:14
전에 올린 질문 글에 어떤 분이 답해주신게 있어서....
댓글이 많이 달린 게시물을 이동하는데(게시물당 댓글 1000개정도), XE의 게시물 관리로는 제대로 이동/복사가 안되서
DB에 직접 들어가서 수정하라고 알려주셔서 그대로 하고 있거든요..
근데 게시물 수가 많아서(댓글 천개씩 달린 게시물이 천개정도 됩니다...) 일일히 수정하기가 힘들더라구요ㅜㅜ
쿼리로 하면 일괄 수정이 된다는 말에 쿼리문을 작성해서 돌려봤는데 계속 에러가 나서요..
title 필드에서 'XXX'라는 키워드를 검색해서, 해당 키워드가 들어간 게시물의
module_srl 필드 값을 새로운 게시판 번호로 수정해주려고 하거든요ㅠㅠ
이것저것 인터넷에서 검색해보고
UPDATE '데이터베이스'.'테이블' SET 변경할필드='수정값' WHERE 검색대상필드 like '검색어'
높은 확률로 쿼리가 잘못된것같은데ㅠㅠㅠ
어떤식으로 쿼리를 돌려야할지 잘 모르겠어요..... 보시고 조언부탁드립니다..ㅜㅜ
* 혹시 검색어가 한글인것도 검색에 영향을 주나요? 쿼리를 돌렸을때 에러라고 뜨면서 검색어(한글)가 깨져보이긴 하던데..
댓글 2
-
송동우
2012.11.25 14:36
-
hexit
2012.11.25 14:44
답변 감사합니다ㅠㅠ 그런데 홈페이지의 특성상 게시물이 아닌 댓글로 달리는 형식이라... 대부분의 게시글이 댓글 갯수가 천개가 넘어요ㅠㅠ 각자 주제를 가지고 게시글을 쓰고 그 아래에서 같은 주제로 댓글로 달리는 시스템이라..... 게시물이 너무 ㄴ늘어나서 특정 주제의 게시물만 따로 빼려고 했던거거든요.. 사실상 게시물 구분할 수 있는 방법이 title 필드에서 해당 주제어를 검색해서 걸러내는 방법 뿐이라...ㅠㅠ -
송동우
2012.11.25 14:51
위에 답변에 나와있듯이
답변의 갯수는 아무런 상관이 없습니다.
db에 가서 테이블을 보시면 이해될텐데.......
댓글 테이블과 게시글 테이블의 연결은 document_srl 하나만 연결되면 됩니다........
그래서 댓글의 갯수는 수십개가 있든, 하나가 있든 아무런 상관이 없습니다.......
update xe_documents set module_srl=새로운모듈번호 where module_srl=기존의 모듈번호 and title like '%검색어%';
이렇게 해보세요.......
-
hexit
2012.11.25 15:04
악ㅠㅠㅠㅠㅠㅠㅠ 답변 정말 감사합니다ㅜㅜ 이렇게 하니까 한번에 해결되네요ㅠㅠㅠㅠ 감사합니다!
게시물이 저장되는 테이블과 댓글이 저장되는 테이블은 따로 이루어져 있습니다.
댓글이 천개가 달려도 게시물의 모듈번호 변경하는 것은 댓글이 하나도 없는 게시물의 모듈번호를 변경하는 것과 같습니다......
update xe_documents set module_srl = 새로운 모듈번호 where module_srl = 기존의 모듈번호 and comment_count > 999;
이렇게 하면
xe_documents 테이블에 기존의 모듈번호에 댓글 카운트가 999이상(1000개부터 해당) 인 레코드들은 새로운 모듈번호로 바뀝니다....
참고로 이런 질문은 구글링해서 sql 문법에 대해서 알아보시는 것이 더 도움이 됩니다........