Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    14

    eliminare record con un campo duplicato

    salve a tutti,

    ho visto che in rete ci sono numerosi post che insegnano ad eliminare i record doppi di una tabella tuttavia ho avuto alcune difficoltà nell'eseguire il codice.

    Ad esempio il seguente codice

    SELECT DISTINCT email
    FROM mytable
    LIMIT 0 , 30

    mi restituisce un numero di record molto vicino al numero dei record totali della table.
    Questo mi fa pensare che i risultati visualizzati sono quelli già epurati dai valori di email doppi. (GIUSTO?)

    Quello che mi servirebbe è poter creare una nuova tabella contenente solo i record con email non duplicati.

    Riuscite ad aiutarmi?
    Grazie

  2. #2
    crei la nuova tabella e poi la riempi con una query:

    codice:
    INSERT INTO nuovatabella (email)
    SELECT DISTINCT email
    FROM mytable;

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    14
    Grazie carlogh,

    puoi indicarmi come inserire in nuovatabella tutti i campi presenti sulla tabella vecchia epurati dei doppioni presenti sul campo email attraverso il distinct?

    Forse con qualcosa del genere?

    INSERT INTO nuovatabella (*)
    SELECT DISTINCT email
    FROM mytable;

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Devi specificare tutti i campi

    codice:
    insert into nuova_tabella (campo1,campo2,...,campoN,campo mail)
    select campo1,campo2,...,campoN,campo mail from tabella_vecchia group by mail

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    14
    Grande!!!

    ragazzi, approfitto della vostra gentilezza per un ultimo consiglio.

    come faccio a fare in modo che i contatti inseriti seguano l'ordine precedente dell'id?

    Ho provato questa ma non funziona


    insert into leadBCK (nome,cognome,indirizzo,citta,provincia,telefono,c ell,fax,email,modello,datainizio,datafine,ricontat to,note,privacy,motivo,source)
    select id, nome,cognome,indirizzo,citta,provincia,telefono,ce ll,fax,email,modello,datainizio,datafine,ricontatt o,note,privacy,motivo,source from leadOLD order by id ASC group by email

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    La clausola order va inserita dopo quella di raggruppamento.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    14
    Si avevo provato ma ricevevo l'errore
    #1136 - Column count doesn't match value count at row 1


    da che deduco che dovrei inserire il campo id anche dopo
    "insert into leadBCK"

    Tuttavia se lo facessi inserirei anche l'id nella nuova tabella. Esistono altre soluzioni?

    Altrimenti 1) elimino la colonna id da leadBCK
    2) faccio l'insert
    3) assegno chiave primaria alla colonna id appena importata.

    Giusto?



    insert into leadBCK (nome,cognome,indirizzo,citta,provincia,telefono,c ell,fax,email,modello,datainizio,datafine,ricontat to,note,privacy,motivo,source)
    select id, nome,cognome,indirizzo,citta,provincia,telefono,ce ll,fax,email,modello,datainizio,datafine,ricontatt o,note,privacy,motivo,source from leadOLD order by id ASC group by email

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Continui a mettere l'order by nel posto sbagliato.

    Puoi effettuare l'ordinamento su id anche senza includerlo tra i campi selezionati.
    Se nella nuova tabella hai impostato un campo chiave primaria, questo verrà generato automaticamente in base all'ordine di recupero dati dalla tabella originaria.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    14
    grazie mille. Ho risolto.

    Non sapevo potessi fare un order by id senza richiedere il select.

    Ciao

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.