sql >> Databasteknik >  >> RDS >> Mysql

Mysql Duplicate Rows (Duplicering upptäckt med 2 kolumner)

delete from myTable 
where id not in
(select min(id)
from myTable
group by A, B)

d.v.s. markeringen inom parentes returnerar det första ID:t för varje gruppering av A och B; Om du tar bort alla id som inte finns i den här uppsättningen tas alla förekomster av en A-plus-B-kombination bort som är "efter" dess första förekomst.

REDIGERA :denna syntax verkar vara problematisk:se felrapport:

http://bugs.mysql.com/bug.php?id=5037

En möjlig lösning är att göra detta:

delete from myTable 
where id not in
(
      select minid from 
      (select min(id) as minid from myTable group by A, B) as newtable
) 


  1. Introduktion till Oracle Databas Backup

  2. Oracle PL/SQL:Exportera data från en tabell till CSV

  3. Versionering av SQL Server-databas

  4. PDO:Kunde inte hitta drivrutinen php/mysql