Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zduplikowane wiersze MySQL

Uruchomiłbym kursor (z językiem programowania MySQL SP, Java, Python, .NET) w tym zapytaniu:

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

Następnie w wierszach zwróconych przez kursor po prostu zrób wszystko, co musisz:sprawdź wystąpienie FIN%, sprawdź obecność PersonalKey i odpowiednio zaktualizuj.

Dla każdego wiersza na kursorze możesz otworzyć inny kursor za pomocą:

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

A teraz będziesz miał wewnętrzny kursor ze wszystkimi wierszami, które zmodyfikujesz. Jeśli jest to ten, którego potrzebujesz, zachowaj go i zaktualizuj przy użyciu wspomnianej wartości KEY. W przeciwnym razie usuń go.

W Oracle możesz osiągnąć to, co chcesz w jednym zapytaniu, ale nie sądzę, że w ten sposób uzyskasz taką samą wydajność, jak przy tym podejściu.

Mam nadzieję, że to pomoże.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy MySQL obsługuje datę historyczną (np. 1200)?

  2. Jak naprawić „MySQL ERROR 1819 (HY000):” w systemie Linux?

  3. Aktualizacja wielu kolumn tabeli MySQL przy użyciu tablic z PDO

  4. Czy mysqldump niezawodnie obsługuje dane binarne?

  5. Mapowanie pól procedury składowanej MySQL Entity Framework 4.0