Ja, ervan uitgaande dat u een uniek ID-veld heeft, kunt u alle records verwijderen die hetzelfde zijn, behalve de ID, maar die niet "de minimale ID" hebben voor hun groep van waarden.
Voorbeeldvraag:
DELETE FROM Table
WHERE ID NOT IN
(
SELECT MIN(ID)
FROM Table
GROUP BY Field1, Field2, Field3, ...
)
Opmerkingen:
- Ik heb vrij "Tabel" en "ID" gekozen als representatieve namen
- De lijst met velden ("Veld1, Veld2, ...") moet alle velden bevatten behalve de ID
- Dit kan een langzame zoekopdracht zijn, afhankelijk van het aantal velden en rijen, maar ik verwacht dat het in orde is in vergelijking met alternatieven
EDIT:Als je geen unieke index hebt, raad ik je aan om gewoon een automatisch oplopende unieke index toe te voegen. Vooral omdat het een goed ontwerp is, maar ook omdat je de bovenstaande zoekopdracht kunt uitvoeren.