Originariamente inviato da piero.mac
Una indicazione.. un'idea ....

SELECT campo_doppione, COUNT(*) as tot
FROM TABELLA
GROUP BY campo_doppione
Order by tot

estrai i dati....

WHILE($row = mysql_fetch_assoc($query) {

if($row['tot'] > 1) { $limit = $row['tot'] - 1;
DELETE FROM TABELLA WHERE campo_doppione = '$row[campo_doppione]' LIMIT $limit
}
}

e poi compatta la tabella:

OPTIMIZE TABLE tabella

In solido, se la conta dei record e' superiore a 1, setti il limit = a $tot - 1 (quello che deve restare). altrimenti passa al successivo.

Fallo prima su una copia della tabella. Oppure invece del DELETE fai un SELECT con gli stessi criteri del DELETE. Vedrai cosa effettivamente andrai a cancellare.


problemino...la prima select campo_doppione io a priori non lo so, si dovrebbe fare in modo che automaticamente inizia dal primo capo (con una sessione eventualmente si salva il nome ad esempio) e poi con un'altra query va a scansionare tutto il db, e se trova campi uguali li cancella...

ti ringrazio!! ciao