2011-10-03 106 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 shell脚本。 – Mechaflash

5

使用Excel把数据集中到一个逗号分隔字符串,然后简单地说:

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

请注意,您将需要之前在Excel中每个电子邮件地址后,以及手动添加单引号。

+0

这将起作用,但格式化工作量很大。 – Mechaflash

+0

在导出之前,您可以使用Excel字符串函数在每封电子邮件之前和之后自动添加单引号。 = CONCATENATE(“'”,A1,“'”) – MECU

0

那么创建delete statementsingle email然后用Microsoft excel完成其余的电子邮件?通过使用concatenate函数并匹配所选电子邮件列表

+0

= D我们使用开放式办公室,甚至不知道如何做到这一点。 – Mechaflash