sql >> Databasteknik >  >> RDS >> Mysql

MySQL Duplicera rader

Jag skulle köra en markör (med MySQL SP programmeringsspråk, Java, Python, .NET) på den här frågan:

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

Sedan, på de returnerade raderna från markören, gör du bara vad du behöver:leta efter FIN%-instansen, kontrollera om PersonalKey är närvarande och uppdatera därefter.

För varje rad på markören kan du öppna en annan markör med:

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

Och nu kommer du att ha en inre markör med alla rader du kommer att ändra. Om det är den du behöver, behåll den och uppdatera den med KEY-värdet du nämnde. Annars tar du bort den.

I Oracle kan du åstadkomma vad du vill i en fråga, men jag tror inte att du får samma prestanda som du skulle få med det här tillvägagångssättet.

Hoppas det hjälper.



  1. Kör dynamisk fråga med go i sql

  2. Beräkna InnoDB buffertpoolstorlek för din MySQL-server

  3. Tjäna pengar med oanvända saker:En datamodell för delningsekonomi

  4. Få en exakt exekveringstid för en MySQL-sats