You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用MySQL删除users表中邮箱存在于bad_emails表的数据?

解决users表中删除匹配bad_emails邮箱数据的问题

嘿,你的思路方向是对的,但子查询的语法写法有点问题,我给你两种常用且正确的写法,都能满足你的需求:

方法一:使用IN子查询(直观易懂)

这是最直接的写法,用IN关键字匹配子查询返回的所有邮箱值:

DELETE FROM users 
WHERE Email IN (SELECT Email FROM bad_emails);

这个语句会先从bad_emails表中取出所有邮箱,再删除users表中邮箱在这个集合里的所有行。

方法二:使用JOIN关联删除(大数据量更高效)

如果你的数据库规模很大,用JOIN的方式通常执行效率更高,尤其是当两个表的Email字段都建立了索引时:

DELETE u
FROM users u
JOIN bad_emails b ON u.Email = b.Email;

这里通过JOIN把users和bad_emails表用邮箱关联起来,直接删除匹配的users表数据。

重要提醒!

在执行删除操作前,建议先运行SELECT语句验证一下要删除的内容,避免误删:

SELECT * FROM users WHERE Email IN (SELECT Email FROM bad_emails);

确认返回的结果是你想要删除的数据后,再执行DELETE操作。

内容的提问来源于stack exchange,提问作者Jordash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:14:20