sql >> Databáze >  >> RDS >> Mysql

MySQL duplicitní řádky

Na tento dotaz bych spustil kurzor (s programovacím jazykem MySQL SP, Java, Python, .NET):

select Name, Firstname, Lastname, count(1)
  from Pruebas
 group by Name, Firstname, Lastname
having count(1) > 1

Pak na vrácených řádcích z kurzoru udělejte vše, co potřebujete:zkontrolujte instanci FIN%, zkontrolujte přítomnost PersonalKey a podle toho aktualizujte.

Pro každý řádek na kurzoru můžete otevřít jiný kurzor pomocí:

select *
  from Pruebas
 where Name = the_Name
   and Firstname = the_Firstname
   and Lastname = the_Lastname

A nyní budete mít vnitřní kurzor se všemi řádky, které upravíte. Pokud je to ta, kterou potřebujete, uschovejte ji a aktualizujte ji o hodnotu KEY, kterou jste zmínili. V opačném případě jej smažte.

V Oracle můžete dosáhnout toho, co chcete, jedním dotazem, ale nemyslím si, že tímto způsobem dosáhnete stejného výkonu, jako byste s tímto přístupem dosáhli.

Doufám, že to pomůže.



  1. #1062 - Duplicitní záznam pro klíč 'PRIMARY'

  2. php mysql porovnat long a lat, vrátit ty pod 10 mil

  3. Operace SQL Server CRUD

  4. Laravel:jak získat průměr na vnořených vztazích hasMany (hasManyThrough)