Originariamente inviato da dinucciarturo
Ciao a tutti,
nel db ho circa 45.000 record e ci sono molti doppioni identici, mi aiutate a creare una query-script che mi consenta di eliminare automaticamente i doppioni lasciandone una solo capia...

grazie!
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.