Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    168

    eliminazione records identici

    Ciao ragazzi, lanciando la query seguente:

    SELECT t1.*
    FROM nome_tabella as t1
    inner join
    (SELECT nome_attributo
    FROM nome_tabella
    group by noome_attributo
    HAVING count(nome_attributo)>1) as t2
    on t1.nome_attributo=t2.attributo

    ho notato che nella mia tabella ci sono dei records che si ripetono due i più volte, cioè dei records che risultano contenere per ogni campo valori identici. Come posso eliminare le ripetizioni,dato che sono ridondandi?

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    168
    Ho trovato la soluzione perfetta su una tabella di 40 righe ma non su una di 1078655. Su quest'ultima non finisce mai di girare

  4. #4

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    168
    Questa qui:

    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

  6. #6
    potresti provare con una JOIN esplicita invece che implicita.

    accertati comunque che la tabella abbia gli indici giusti (altrimenti con più di un milione di record diventa mortalmente lenta)

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    168
    Ciao, come forse avrai capito attri1, attr2, attr3, attr4, attr5, attr6, attr7 sono i nomi di tutte le colonne che costituiscono la mia tabella. Mi hai consigliato di accertarmi che la tabella abbia gli indici giusti: ma se nel mio caso considero tutti i campi, li rendo tutti indici?

  8. #8
    Puoi usare alter ignore...

    Questa ti elimina tutti i doppioni:
    codice:
    ALTER IGNORE TABLE tabella ADD UNIQUE KEY (attri1, attr2, attr3, attr4, attr5, attr6, attr7);
    Dopodichè, io eliminerei la chiave...
    Ciao!

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    168
    ciao fmortara, dimmi se ho capito male: con il codice che mi hai scritto io non solo definisco una chiave unica ma elimino anche i doppioni?

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    168
    Ho capito male: ho testato il codice su una piccola tabella e ho notato che mi definisce solo l'indice mentre, contrariamente a quanto hai scritto tu, non mi elimina i doppioni.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.