mysql语法问题

mmiikkuu 2019-06-04 09:03:03
delete from Person2
where Email in (select Email from Person2 group by Email having count(Email) > 1) and 
Id not in (select min(Id) from Person2 group by Email having count(Email) > 1);

这段话提示语法问题,但我找不出问题,请大神指点
...全文
125 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
过眼浮云866 2019-06-20
  • 打赏
  • 举报
回复 1
DELETE FROM Person2
WHERE Email IN (SELECT b.Email FROM (SELECT Email FROM Person2 GROUP BY Email HAVING COUNT(1) > 1) b) AND
Id NOT IN (SELECT a.id FROM (SELECT MIN(Id) id FROM Person2 GROUP BY Email HAVING COUNT(Email) > 1) a);

聚合函数得到的结果集不能当常量使用,需要在外面包一层,把查询到的结果集,当成固定字段才可以执行删除动作;
  • 打赏
  • 举报
回复 1
select min(Id) from Person2 group by Email having count(Email) > 1 改为count(*)

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧