假设您在表上有某种主键,例如自动增量ID,则可以执行以下操作。
UPDATe group SET names = CONCAt(names,' Copy 1')WHERe ID IN(SELECT MAX(ID) FROM group GROUP BY names HAVINg count(*) > 1);
为了说明,它将查找重复的任何内容,为该集中的所有内容获取最大ID,并在其末尾附加“副本1”。如果您有3次或多次使用某些名称,则可能仍会留下一些重复项。只需再次运行它,这次使用“副本2”而不是“副本1”。继续重复此过程,直到消除所有重复项。
更新。要从@Yahia借用一个想法并使用UUID,如果要在一个查询中全部完成,可以执行以下操作。
UPDATe group SET names = CONCAt(names, CONCAt ( ' Copy ', UUID_SHORT() ) )WHERe ID NOT IN(SELECT MIN(ID) FROM group GROUP BY names HAVINg count(*) > 1) ANDID IN(SELECt IDFROM group AS G1INNER JOIN group AS G2ON G1.names = G2.names AND G1.ID <> G2.ID);



