쿼리문의 도움을 구하고자 합니다

쿼리문의 도움을 구하고자 합니다

QA

쿼리문의 도움을 구하고자 합니다

본문

테이블명 g5_write_kkk에서 wr_content 안의 내용중에 삭제를 할려고 합니다

아래 해당 wr_content 의 내용을 일괄삭제하는 쿼리문의 도움을 구하고자 합니다.

1.
wr_id 001의 wr_content내용 :<title>백두산</title>
wr_id 002의 wr_content내용 :<title>한라산</title>
wr_id 003의 wr_content내용 :<title>지리산</title>
wr_id 004의 wr_content내용 :<title>북한산</title>

<title>을 포함하여서 </title>까지 일괄 삭제하는 쿼리문

2.
wr_id 001의 wr_content내용 :<table style="border-collapse:collapse;" cellspacing="0"><tr>백두산</table>
wr_id 002의 wr_content내용 :<table style="border-collapse:collapse;" cellspacing="0"><tr>한라산</table>
wr_id 003의 wr_content내용 :<table style="border-collapse:collapse;" cellspacing="0"><tr>지리산</table>
wr_id 004의 wr_content내용 :<table style="border-collapse:collapse;" cellspacing="0"><tr>북한산</table>

<table style="border 부터 </table>까지 일괄 삭제하는 쿼리문


wr_id가 10,000을 넘어서 수작업을 하다가.....

도움을 부탁드립니다.
 

이 질문에 댓글 쓰기 :

답변 3

제 기준 도메인/test/test.php 에 이 파일을 업로드 하였습니다.

우선 테스트까지 해봤는데 정상적으로 작동하는것 같습니다. 다만.. 혹시 모르니 질문자님도 꼭 복사본을 만들어서 테스트해보신 후 적용해보세요.

해당 소스를 업로드 한 후에 도메인/test/test.php에 접속하면 소스가 실행됩니다.

확인하시고 꼭 삭제하는거 잊지마세요!

<?php 
include_once('../common.php');
$table_name = 'test1'    //변경할 테이블을 입력합니다;
?>

<?php 

    //<title>태그 없애는 소스
    $sql = "select * from g5_write_$table_name";
    $result = sql_query($sql);
    
    for($i=0; $row=sql_fetch_array($result);$i++){
        $wr_content = $row['wr_content'];
        $new_wr_content = preg_replace('(<title>(.*?)</title>)', '', $wr_content);
        
    
        $u_sql = "update g5_write_$table_name set wr_content = '$new_wr_content' where wr_id = '{$row['wr_id']}'";
        sql_query($u_sql);
    }
?>

<?php 

    //테이블 태그 없애는 소스
    $sql = "select * from g5_write_$table_name";
    $result = sql_query($sql);
    
    for($i=0; $row=sql_fetch_array($result);$i++){
        $wr_content = $row['wr_content'];
        $new_wr_content = preg_replace('(<table style="border-collapse:collapse;" cellspacing="0"><tr>(.*?)</table>)', '', $wr_content);
        
        
        $u_sql = "update g5_write_$table_name set wr_content = '$new_wr_content' where wr_id = '{$row['wr_id']}'";
        sql_query($u_sql);
    }
?>

  타이틀 태그 없애는 소스라는 주석입니다.

저 파일을 한번 업로드 해보시고
$table_name = 'test1'    //변경할 테이블을 입력합니다;
여기에 'kkk'를 입력해보시구요

저 소스는

1. 데이터를 테이블에서 불러옴
2. 정규식을 통해 wr_content안의 <title>백두산or한라산 등등</title> 을 공백으로 치환함
3. 치환한 값을 다시 테이블에 update시킴

입니다.
그냥 저대로 test.php파일을 만드셔서 실행시키면 되요!

쿼리문 하나로는 불가하고요 php 페이지를 만들어서 님이 작성해놓으신 부분처럼 적용을 하시면 수월할듯 싶습니다.

mysql 의 update 중에 replace 문장은 정규표현식은 지원하지 않는걸로 알고 있습니다.

님의 방법으로 하시는게 최선이겠네요

 

그렇지 않다면 만개의 행을 덤프해서 엑셀이나 기타 다른 도구로 update 쿼리를 생성하시는 방법이 있겠죠^^

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

회원로그인

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