mysql 删除or语句,mysql – SQL使用150000’OR’语句删除的最有效方法

我们为客户端持有约350k的电子邮件地址数据库.

他们为我提供了几个excel电子表格,他们想要删除大约150k的电子邮件地址(长话短说,这是一个垃圾邮件列表,他们已经掌握并希望删除反弹).

使用查找和替换的奇迹,我有一个查询构建来执行这个巨大的删除但查询需要太长时间和超时(没有惊喜).

我建立的查询形式为:

DELETE FROM emaillist

WHERE intListID = 68

AND

(strEmailAddress = "aaaa@aaaa.com"

OR strEmailAddress = "aaab@aaaa.com"

OR strEmailAddress = "aaac@aaaa.com"

......

etc etc etc

......

OR strEmailAddress = "zzzy@zzzz.com"

OR strEmailAddress = "zzzz@zzzz.com"

)

有一个更好的方法吗?

解决方法:

将要删除的电子邮件放在临时表中.然后,您可以使用联接从原始表中删除电子邮件

DELETE e

FROM emaillist e

INNER JOIN temp_table t ON t.strEmailAddress = e.strEmailAddress

WHERE intListID = 68

之后放下临时表并完成.

标签:mysql

来源: https://codeday.me/bug/20190715/1467961.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值