전체 게시판 변경을 하려면 update * set wr_content = REPLACE(wr_content, 

전체 게시판 변경을 하려면 update * set wr_content = REPLACE(wr_content, 

QA

전체 게시판 변경을 하려면 update * set wr_content = REPLACE(wr_content, 

본문

update g5_write_name set wr_content = REPLACE(wr_content, 

전체 게시판 변경을 하려면

 

update * set wr_content = REPLACE(wr_content, 

위와같이 하면 되나요? 

 

감사합니다.

 

이 질문에 댓글 쓰기 :

답변 5

UPDATE g5_write_게시판ID SET wr_subject = '제목변경';
이렇게 하시면됩니다.

 

와일드카드로 g5_write_ 접두어로 하는 방법이 있지만

게시판이 몇십개가 아닌이상 위 방식대로 안전하게 하세요..

전체 게시판의 무엇을 변경하신다는 건지 모르겠지만 게시판의 내용을 변경을 위해서는

 

update g5_write_name set wr_content = '변경할 내용'

게시판 내용이라면 이런식으로 하시면 되십니다.

※ 만약, """전체 그누 게시판(g5_write_*)에서 "특정 문자열" 변경/제거"""시라면~

모든 그누 게시판(g5_write_*)의 테이블을 검색한 후,

UPDATE 문을 동적으로 생성 및 실행하여

wr_content의 특정 문자열을 일괄 변경하는 방법을 사용하시면~

 

information_schema.tables에서 현재 데이터베이스의 모든 g5_write_* 테이블을 검색한 후,

GROUP_CONCAT을 사용하여 각 테이블에 대한 UPDATE 문을 동적으로 생성하고,

이를 PREPARE를 이용해 SQL 실행 계획으로 만든 뒤 EXECUTE로 실행하며,

마지막으로 DEALLOCATE PREPARE를 통해 사용이 끝난 SQL 문을 정리하여

모든 g5_write_* 테이블의 wr_content에서 특정 문자열을 일괄 변경.

 

SET = (
    SELECT GROUP_CONCAT(
        CONCAT('UPDATE ', table_name, 
               ' SET wr_content = REPLACE(wr_content, "기존내용", "새로운내용");')
        SEPARATOR ' ')
    FROM information_schema.tables 
    WHERE table_schema = DATABASE() 
    AND table_name LIKE 'g5_write_%'
);

PREPARE stmt FROM ;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

전체 게시판을 추출한 다음 하나씩 처리 하면 됩니다

$qq=sql_query(" select bo_table from {$g5['board_table']} ");

while($row=sql_fetch_array($qq)){

  $g5_table =$g5['write_prefix'].$row['bo_table'];

  sql_query("update $g5_table set wr_content = REPLACE(wr_content, ~~");

}

 

  

답변을 작성하시기 전에 로그인 해주세요.
전체 129,406 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT