2011-10-03 3 views
1

.txt 파일에 전자 메일 계정 목록이있는 경우 전자 메일 계정이 포함 된 행의 각 인스턴스에 대해 mysql delete 문을 수행 할 수있는 방법이 있습니까? 테이블 반대?전자 메일 목록, 테이블에서 행 삭제

우리는 현재 약 600 개의 이메일이 유효하지 않은 뉴스 레터 메일 링리스트를 가지고 있습니다. 수동으로 하나씩 차례로 진행하는 것 외에도 쉽게 제거 할 수있는 방법을 원합니다.

+0

mysql 테이블에서 삭제할 주소의 소스로 텍스트 파일을 사용하십시오. – Mechaflash

답변

3

데이터베이스에서 삭제할 주소의 소스로 텍스트 파일의 내용을 사용하고자하는 가정 :

$addreses = file('emails.txt'); 
foreach($addresses as $address) { 
    $safe_address = mysql_real_escape_string($address); 
    $sql = "DELETE FROM yourtable WHERE (email = '$safe_address');"; 
    $result = mysql_query($sql) or die(mysql_error()); 
} 

가장 간단한 형태입니다. 생성/실행 된 쿼리의 수를 줄이기 위해 따옴표/쉼표로 구분 된 형식으로 전자 메일 목록을 작성하고 대신 WHERE IN (...)을 사용하여 프로세스를 최적화하는 몇 가지 작업을 수행 할 수 있습니다.

나는 의사 코드 자리 표시 자로 PHP를 사용하고 있지만, 기본 원칙은 거의 모든 언어에서 동일합니다.

+0

+1 및 답변 : 고마워 이것이 내가 찾고있는 것입니다. 아마도 BASH 셸 스크립트로 조정할 것입니다. – Mechaflash

5

사용 엑셀은 단순히 다음 쉼표로 구분 된 문자열로 데이터 집합을 켜고합니다 : 수동 전에 엑셀에서 각 이메일 주소 뒤에뿐만 아니라 작은 따옴표를 추가해야합니다

DELETE FROM YOUR_TABLE 
WHERE email IN ('[email protected]', '[email protected]') 

참고.

+0

서식을 지정하기위한 많은 추가 작업을 제외하면이 방법이 효과가 있습니다. – Mechaflash

+0

Excel 문자열 기능을 사용하여 내보내 기 전에 각 전자 메일 앞뒤에 작은 따옴표를 자동으로 추가 할 수 있습니다. = CONCATENATE (" '", A1, "'") – MECU

0

single emaildelete statement을 생성 한 다음 Microsoft excel을 사용하여 나머지 이메일을 완성 하시겠습니까? 연결 기능을 사용하고 선택한 이메일 목록과 일치

+0

= D 우리는 열린 사무실을 사용하고 처음부터 그렇게하는 방법조차 모릅니다. – Mechaflash

관련 문제