[Php-it] [MySQL] eliminare duplicati..
Domenico L.
domenico.lorusso at pleiade.it
Thu Sep 21 12:59:01 CEST 2006
Luca Benni ha scritto:
> scusate la question..
>
> come faccio con una query a eliminare simil-duplicati all'interno di
> un database..?!
> li ho chiamati simil duplicati perchè in realtà tutti i valori dei
> campi sono uguali tranne quelli dell'ID...
> mannaggia mannaggia.. in pratica sono dei record inseriti per errore
> due volte..
>
> L.
brutta cosa
io mysql non lo conosco benissimo... cmq
fai una select raggruppando tutti i campi tranne id,
Prendendo min(id)
e having count(*)>1
Questi sono i tuoi dati da tenere salvare.
dopo di che fai una delete dove tutti i campi sono uguali a quelli
risultanti dalla prima query ma id è maggiore:
delete from tabella
where id in (
select id
from tabella t, (
select min(id) id, campo1... campoN
from tabella
group by campo1,..,campoN
having count(id)>1
) b
where t.campo1=b.campo1
and ...
and t.campoN=b.campoN
and t.id>t.id
)
Questo se usi mysql 4.1 o forse addirituttura il 5 altrimenti di fare
queste cose in più passaggi con tabelle di appoggio...
Ciao
--
Domenico L.
per stupire mezz'ora basta un libro di storia,
io cercai di imparare la Treccani a memoria... [F.d.A.]
More information about the Php-it
mailing list