繁体   English   中英

MySql如何在该表中基于分组依据更新表?

[英]MySql how do I update table based on group by within that table?

当我运行以下查询时,我得到

错误#1093-您无法在FROM子句中指定目标表'x2'用于更新

update contacts 
set duplicates = 1
where email in ( select email from contacts 
    group by email
    having count(*) > 1)

任何帮助,将不胜感激。

我认为您可以通过嵌套子查询来欺骗它。

update contacts set duplicates = 1 where email in 
(select email 
  from  
    (select email from contacts group by email having count(*) > 1) as a)

您可以执行JOIN查找具有相同电子邮件和不同主键的其他行。

例如,假设您的主键称为id

UPDATE contacts AS c1
JOIN contacts AS c2 ON (c1.email = c2.email AND c1.id <> c2.id)
SET c1.duplicates = 1;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM