Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [MYSQL] eliminare records duplicati

    ciao a tutti!
    premetto che non sono esperto di mysql e php.... purtroppo però sono stato incaricato di trovare i duplicati all'interno di un database di circa 90000 records e successivamente di eliminarli.
    i campi più importanti che utilizzo per la ricerca sono nome, cognome, email ma ne sono presente molti altri all'interno della tabella iscritto; il campo chiave è email che non si deve duplicare più di una volta.
    chi è così gentile da darmi una mano, ho provato a leggere già le altre discussioni ma non riesco ad ottenere un report attendibile (mi restituisce alcuni indirizzi ripetuti 14 volte, ma controllando nel database non è così )... non so che fare
    premetto che utilizzo phpmyadmin

  2. #2

  3. #3
    ciao!
    inanzitutto grazie per il link, ho letto con attenzione e credo di poter usare il comando delete insieme al comando limit
    il problema che ho è che facendo questa query:

    SELECT email,COUNT(email) AS cnt FROM iscritto GROUP BY email HAVING cnt > 1;

    phpmyadmin mi da un esito che successivamente esporto come file csv, all'interno trovo delle mail duplicate anche 12/14 volte nel mio database.... nel momento in cui vado a ricercare all'interno di quest'ultimo i records duplicati il programma mi restituisce delle query vuote come se l'indirizzo non fosse presente all'interno...

    sbaglio io nel fare la query o cosa può essere??

  4. #4
    Non capisco molto il discorso ci sono non ci sono... per eliminare i doppioni secondo un determinato fattore (il tuo caso email) faccio cosi':
    codice:
    CREATE TEMPORARY TABLE temp
    SELECT *
    FROM tabella
    GROUP BY email
    ORDER BY id;
    
    TRUNCATE TABLE tabella;
    
    INSERT INTO tabella
    SELECT * FROM temp;
    Funziona alla grande, ma nel tuo caso di dati che ci sono poi non ci sono... fai una copia di backup. Se lo esegui con phpmyadmin devi mettere tutte e tre le queries nella stessa finestra ed eseguirle con unico comando. Se lo esegui da php sono tre query distinte.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Ciao piero, non mi tornano i conti
    le tabelle temporanee non durano per tutta la connessione? Perché allora non posso eseguire quelle query con uno script PHP?
    Forse volevi dire che non possono essere eseguite con 3 richieste a phpMyAdmin?


  6. #6
    Originariamente inviato da Gianni_T
    Ciao piero, non mi tornano i conti
    le tabelle temporanee non durano per tutta la connessione? Perché allora non posso eseguire quelle query con uno script PHP?
    Forse volevi dire che non possono essere eseguite con 3 richieste a phpMyAdmin?

    Se lo esegui con phpmyadmin devi mettere tutte e tre le queries nella stessa finestra ed eseguirle con unico comando. Se lo esegui da php sono tre query distinte.
    dov'e' che leggi quello che hai detto... o i dubbi che esprimi???

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7

  8. #8
    grazie!!
    scusa ancora la mia incompetenza... ma per fare un backup completo del database, nel caso dovesse andare male qualcosa, quali caselle devo flaggare nelle opzioni di esportazione per essere sicuro di avere selezionato tutti i record, in maniera da poterli ripristinare correttamente?
    purtroppo sono proprio una frana con phpmyadmin....

  9. #9
    con phpmyadmin fai una copia della tabella..... chiamala 'pippo'. Porta bene, e' un nome che nessuno utilizza... nel caso fai una copia da pippo alla tua masturbata ... dopo averla ripulita.


    operazioni -> copia

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    sei un grande!!! funziona tutto alla perfezione!!
    mi sono permesso di aggiungere alla tua query nel group by i campi nome e cognome, poiché mi sono accorto che alcuni records non avevano valorizzato il campo email e venivano eliminati tutti, mentre andavano mantenuti ugualmente poiché avevano nomi e cognomi differenti.... ho agito correttamente??

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.