sql >> Database >  >> RDS >> Mysql

Mysql dubbele rijen (duplicaat gedetecteerd met 2 kolommen)

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

d.w.z. de select tussen haakjes retourneert de eerste id voor elke groepering van A en B; door alle ID's te verwijderen die niet in deze set voorkomen, worden alle voorkomens van een A-plus-B-combinatie verwijderd die "volgens" zijn na de eerste keer dat het voorkomt.

BEWERKEN :deze syntaxis lijkt problematisch te zijn:zie bugrapport:

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

Een mogelijke oplossing is om dit te doen:

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


  1. Hoe het aantal dagen verschil tussen twee datums op MySQL te krijgen?

  2. Welk datatype moet worden gebruikt voor het opslaan van telefoonnummers in SQL Server 2005?

  3. SQL*Plus hoe de tekstvariabele van de prompt te accepteren?

  4. SQL AND-operator voor beginners