번개애비의 라이프스톼일

php mysql 중복된 데이터 일괄삭제 본문

IT

php mysql 중복된 데이터 일괄삭제

번개애비 2016. 10. 2. 13:53

특정테이블에 일부필드들을 비교하여 중복된 데이터값이 있을 경우

FOR문을 이용하여 해당 데이터들만 일괄적으로 삭제하는 php문


테이블명 : A_TABLE 

필드 : index, tel, name


tel, name 필드가 중복되는것이 여러개 있을때 index 필드가 인덱스역할을 하고 있는 상태에서

일괄적으로 지운다.



<?php 

/** MySQL 서버 연동문은 생략 **/



//A_TABLE 테이블에서 tel과 name값이 같은것이 1개 초과인것을 "c"라는 임시필드로 출력하기

$cnt_query = "SELECT name, COUNT( * ) AS c FROM A_TABLE GROUP BY tel, name HAVING c >1";

$cnt_result = mysql_query($cnt_query);

$cnt = mysql_fetch_array($cnt_result);


//"c"라는 임시필드 갯수만큼 루프돌리기

for($i = 1; $i<$cnt[c]; $i++){

//중복된 필드들을 삭제

$del_query = "DELETE FROM A_TABLE WHERE index in (select index from (SELECT index  FROM A_TABLE GROUP BY tel, name HAVING count(*) > 1)CNT)";

mysql_query($del_query);

}

mysql_close();


?>

Comments