sql >> Database teknologi >  >> RDS >> Mysql

Mysql Duplicate Rows (Duplikat fundet ved hjælp af 2 kolonner)

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

dvs. markeringen i parentes returnerer det første id for hver gruppering af A og B; sletning af alle id'er, der ikke er i dette sæt, vil fjerne alle forekomster af en A-plus-B-kombination, der er "efterfølgende" til dens første forekomst.

REDIGER :denne syntaks ser ud til at være problematisk:se fejlrapport:

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

En mulig løsning er at gøre dette:

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


  1. PHPmailer - Flere afsendelser af e-mail

  2. MySql få liste over unikke ord fra tabel, hvor værdier i et felt adskilt med komma

  3. Hvordan gemmer man BLOB som fil i PL/SQL?

  4. Databasekryptering:De 3 typer og hvorfor du har brug for dem