eliminazione record identici da una tabella

Ciao ragazzi,

ho scoperto che in una mia tabella ci sono records che si ripetono cioè hanno valori dei campi identici. Dato che sono ridondanti, come posso eliminare le ripetizioni.

Va bene una query del seguente tipo?

select distinct *

from nome_tabella

inviato 6 anni fa
lilux
X 0 X

1) Qual'è la causa che di record doppi e uguali?

2) Non farei un distinct così ma preleverei l'id di ogni record mettendo un distinct in base ad un attributo dei record che causa la ridondanza.

risposto 6 anni fa
Mario Santagiuliana
X 0 X

In realtà non lo so..l'ho scoperto per caso! A volte non si ripetono solo due volte ma anche 3 o 4

risposto 6 anni fa
lilux
X 0 X

Sono giunta a una soluzione, ma solo parzialmente:

ho definito gli indici della mia tabella:

ALTER IGNORE TABLE tabella ADD UNIQUE KEY (attri1, attr2, attr3, attr4, attr5, attr6, attr7);

e poi questa è la query che mi cancella i duplicati:

delete t1 from nome_tabella as t1, nome_tabella as t2

where t1.attr1 = t2.attr1 and

t1.attr2 = t2.attr2 AND

t1.attr3 = t2.attr3 AND

t1.attr4 = t2.attr4 AND

t1.attr5 = t2.attr5 AND

t1.attr6 = t2.attr6

and t1.attr7 < t2.attr7

Su una tabella da 50 righe funziona perfettamente ma su una da 1078655 gira all'infinito. Mi aiutate a risolvere questo problema?

risposto 6 anni fa
lilux
X 0 X

Ho risolto   O0

risposto 6 anni fa
lilux
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda