Mysql
 sql >> Base de données >  >> RDS >> Mysql

Mettre à jour les lignes en double avec un identifiant trouvé en double

Cette requête renverra tous les identifiants en double avec une liste d'identifiants séparés par des virgules qui partagent le même nom :

select
  t1.id,
  group_concat(t2.id)
from
  tablename t1 inner join tablename t2
  on t1.id<>t2.id and t1.name=t2.name
group by
  t1.id

et cette requête mettra à jour la description :

update tablename inner join (
  select
    t1.id,
    group_concat(t2.id) dup
  from
    tablename t1 inner join tablename t2
    on t1.id<>t2.id and t1.name=t2.name
  group by
    t1.id
  ) s on tablename.id = s.id
set
  description = concat('duplicate id in (', s.dup, ')')

veuillez consulter un violon de travail ici .