Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Linhas duplicadas do MySQL


Eu executaria um cursor (com linguagem de programação MySQL SP, Java, Python, .NET) nesta consulta:
select Name, Firstname, Lastname, count(1)
  from Pruebas
 group by Name, Firstname, Lastname
having count(1) > 1

Em seguida, nas linhas retornadas do cursor, faça o que for necessário:verifique a instância FIN%, verifique a presença de PersonalKey e atualize de acordo.

Para cada linha no cursor, você pode abrir um cursor diferente com:
select *
  from Pruebas
 where Name = the_Name
   and Firstname = the_Firstname
   and Lastname = the_Lastname

E agora, você terá um cursor interno com todas as linhas que você modificará. Se for o que você precisa, mantenha-o e atualize-o com o valor KEY que você mencionou. Caso contrário, exclua-o.

No Oracle, você pode realizar o que deseja em uma consulta, mas não acho que dessa forma você obterá o mesmo desempenho que obteria com essa abordagem.

Espero que ajude.