【问题标题】:List of emails, delete rows out of a table电子邮件列表,从表中删除行
【发布时间】:2011-10-03 21:13:01
【问题描述】:

如果我有一个 .txt 文件中的电子邮件帐户列表,有没有一种方法可以针对表中包含电子邮件帐户的行的每个实例执行 mysql 删除语句?

我们有一个时事通讯邮件列表,其中大约有 600 封电子邮件目前无效,我们想要一种更简单的方法来摆脱它们,而不是手动逐一处理。

【问题讨论】:

  • 使用文本文件作为地址源从mysql表中删除

标签: mysql sql-delete


【解决方案1】:

使用excel将数据集转成逗号分隔的字符串,然后简单:

DELETE FROM YOUR_TABLE
WHERE email IN ('example@aol.com', 'example2@aol.com') 

请注意,您还需要在 excel 中的每个电子邮件地址前后手动添加单引号。

【讨论】:

  • 这可以工作,除了格式化需要做很多额外的工作。
  • 您可以使用 Excel 字符串函数在每封电子邮件的前后自动添加单引号,然后再导出。 =CONCATENATE("'", A1, "'")
【解决方案2】:

假设您想使用文本文件的内容作为从数据库中删除地址的来源:

$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 作为伪代码占位符,但基本原理在几乎任何语言中都是相同的。

【讨论】:

  • +1 & 回答:谢谢,这就是我想要的。我可能会将其调整为 BASH shell 脚本。
【解决方案3】:

如何为single email 创建delete statement,然后使用Microsoft excel 完成其余的电子邮件?通过使用连接功能并与所选电子邮件列表匹配

【讨论】:

  • =D 我们使用开放式办公室,但一开始甚至不知道该怎么做。
猜你喜欢
  • 1970-01-01
  • 2019-04-13
  • 2019-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多