• Home
  • Blogroll
  • Feed per fumetti
  • A proposito…
Time'n doom
cioè del tempo né del destino, ma di timendum
  • Argomenti
    • Delicious
    • Fumetti
    • GNU/Linux
    • Giochi e videogiochi
    • Programmazione
      • Javascript
      • PHP
    • Software
      • Mozilla
    • Televisione
    • Vita sul web
      • Blog e blogsfera
      • Chat e social network
      • Forum
      • Greasemonkey
  • Confronti e liste
  • Creazioni
    • Travian Più Più
  • Guide
Browse: Home / Prova Ale / Creazioni / Trovare (e ripulire) i duplicati in mySQL e spostare tabelle

Trovare (e ripulire) i duplicati in mySQL e spostare tabelle

By timendum on 13 maggio 2008

Oggi mi è capitato di voler spostare una tabella da un database ad un altro, entrambi sullo stesso server, perché una parte del progetto si è ingrandita e ora merita uno spazio tutto suo. Ovviamente la soluzione più semplice è esportare ed importare, ma oltre ad essere poco elegante, diventa lunga nel caso di una tabella con molti dati.

Database su foglio di calcolo

La soluzione più semplice è utilizzare la sintassi INSERT INTO, come nell’esempio

INSERT INTO `destinazione`.`dati`
SELECT *
FROM `origine`.`dati` ;

Questo copia la tabella dati dalla tabella origine a  destinazione. Volendo è possibile anche rinominare la tabella specificando due nomi diversi, oppure copiare solo alcune colonne della tabella. Molto importante, la tabella di destinazione deve essere già stata creata, con tutte le colonne e le chiavi necessarie.

Gestire invece i valori duplicati in una tabella è una cosa molto complessa, prima di tutto è necessario identificarli, la sintassi è questa:

SELECT nome, COUNT( nome ) AS totale FROM dati GROUP BY nome HAVING totale >1;

Questo identificherà tutti i nomi doppi nella dabella, solo quelli doppi, per vedere invece i valori distinti, cioè ogni singolo valore che appare, più semplicemente basta

SELECT nome, COUNT( nome ) AS totale FROM dati GROUP BY nome;

Se neanche interessa sapere quante volte appaiono, allora la query si riduce a

SELECT nome FROM dati GROUP BY nome;

Ora, eliminarli non è una cosa semplice, perché è difficile capire quali vanno tenuti e quali no, insomma non è un’azione da fare a cuor leggero e va sempre studiata. La soluzione più corretta è introdurre un vincolo di unicità sulla tabella, o come chiave o come valore unico.

ALTER INGORE TABLE `dati` ADD UNIQUE KEY ( `nome` , `numero` )

Questo comando di alterazione, aggiunge un vincolo di unicità della coppia nome,numero la clausola IGNORE permette di ignorare l’errore di duplicazione, senza la query non avrebbe successo in una tabella che non rispetta il vincolo. Non si hanno però certezze di quali altri dati vengano mantenuti.

Se l’obbiettivo è fare una pulizia assennata, il mio consiglio è procedere per passi, (prima di tutto lavorando su un backup e non dal vivo), quindi pulendo i valori doppi con la query di cui sopra, infine aggiornando i rimanenti dati dalla tabella originale.

  • Condividi:
  • Twitter
  • Delicious
  • Email
  • Stampa

Ti potrebbe interessare...

  • Dreamhost promo code: ottenere un hosting PHP+mySQL, spazio illimitato, a solo 22 dollari per un anno
  • Disabilitare la revisione degli articoli in WordPress
  • Mischiare un array: mix()
  • Travian, Netsons e il cambiamento di sito
  • Forzare o bufferizzare l’output in php

Posted in Creazioni | Tagged database, mysql, Programmazione | 88 Responses

timendum

  • http://www.9records.com GioMBG

    GRAZIE! (veramente) stavo impelagandomi in un complicatissimo script!

  • http://www.9records.com GioMBG

    GRAZIE! (veramente) stavo impelagandomi in un complicatissimo script!

  • Pingback: how to make feather hair extensions

  • Pingback: casino gambling

  • Pingback: How to get rid of blackheads

  • Pingback: acnezine official website

  • Pingback: 866-826-4101

  • Pingback: Gary Moore Venice FL

  • Pingback: Cost of Tummy Tuck

  • Pingback: olive garden coupon

  • Pingback: Scaffold boards

  • Pingback: image hosting

  • Pingback: iPad

  • Pingback: it tool

  • Pingback: General Web Directory

  • Pingback: Dallas SEO

  • Pingback: Webhosting Nederland

  • Pingback: top 5 online casinos

  • Pingback: targeted traffic

  • Pingback: Dead Sea Products

  • Pingback: free grant money for education

  • Pingback: christmas decoration ornaments

  • Pingback: multi-level marketing schemes

  • Pingback: Baby Bedding

  • Pingback: Victoria's secret coupons

  • Pingback: make cash online now

  • Pingback: blackberry curve

  • Pingback: Wholesale Supplies

  • Pingback: credit repair for mortgage

  • Pingback: where can i buy acnezine

  • Pingback: Personalization Mall Coupon Code

  • Pingback: burlington coat factory coupon

  • Pingback: West Palm Beach lawyer criminal

  • Pingback: african mango dr oz oprah

  • Pingback: grow taller 4 idiots

  • Pingback: Swiss T Gallery

  • Pingback: african mango diet before and after

  • Pingback: african mango before and after

  • Pingback: african mango diet before and after

  • Pingback: african mango oprah

  • Pingback: ways to make money without a job

  • Pingback: computers and forums

  • Pingback: frases bonitas

  • Pingback: control de flotas

  • Pingback: control de flotas

  • Pingback: meta

  • Pingback: Polaris snowmobile

  • Pingback: quotes about love

  • Pingback: Leatherman MUT

  • Pingback: project imagination

  • Pingback: black wedges online

  • Pingback: vitamins for hair growth

  • Pingback: Joyce Starr

  • Pingback: Rolling Platform Buyer Guide

  • Pingback: electric dog fence

  • Pingback: attraction

  • Pingback: ley de atracción

  • Pingback: Mandeville DWI Attorney

  • Pingback: leg pain

  • Pingback: LED LCD

  • Pingback: kitchen remodeling Virginia

  • Pingback: control de flotas

  • Pingback: intuition

  • Pingback: hard rock dating

  • Pingback: how to get more lawn customers

  • Pingback: dominos promo codes

  • Pingback: best buy promotional codes

  • Pingback: how to make hair grow faster

  • Pingback: q10 wiki

  • Pingback: hair loss re-growth

  • Pingback: best tire deals

  • Pingback: PPI Claim Scotland

  • Pingback: LED LCD TV

  • Pingback: cork floors

  • Pingback: Card Processing UK

  • Pingback: extended stay motel

  • Pingback: Design Challenge

  • Pingback: Rolleiflex

  • Pingback: www

  • Pingback: my url

  • Pingback: rent text books

  • Pingback: special valentines day gift ideas

  • Pingback: Mile High Messiah

  • Pingback: word

  • Pingback: isuzu amigo second generation

  • Pingback: kindle vs nook

  • Pingback: soccer

  • Pingback: trailer hire christchurch

« Previous Next »

Ricerca

Link QR

Codice QR

Ultime da twitter

  • Ennesimo capitolo della vicenda copyright Apple e (in questo giro) Motorola, niente più iPhone 3 in germania causa GPRS http://t.co/oBo8TwU9 1 day ago
  • Nuova release Unicode 6.1, tra gli altri l carattere U+1F4A9 è "pile of poo" http://t.co/f47D4haA 1 day ago
  • IBM Docs, in ritardo sul settore? Sembra carino a prima vista https://t.co/Sw7P0bKv 2 days ago
  • Un bel (e lungo) articolo su progetto stupendo che è ScummVM http://t.co/caKh4Zov 1 week ago
  • Un nuovo rivoluzionario (e bellissimo) gestore di menu HUD, sarà in ubuntu 12.04 http://t.co/VfbFFGcA 1 week ago

Copyright

Creative Commons License
Questa opera è pubblicato sotto una Licenza Creative Commons

RSS Ultimi commenti

  • Re: Elenco completo delle faccine della chat di Facebook 3 febbraio 2012
    mi fate perfavore lo scudetto della lazio? […]
    Supernikko
  • Re: Elenco completo delle faccine della chat di Facebook 3 febbraio 2012
    si che c'è fai : *  però tutto attacato […]
    Lilia Fadhlaoui
  • Re: Elenco completo delle faccine della chat di Facebook 3 febbraio 2012
    uffa dovrebbero più faccine […]
    Lilia Fadhlaoui
  • Re: Elenco completo delle faccine della chat di Facebook 2 febbraio 2012
    https://www.facebook.com/pages... NUOVE FACCINEEEE default472 {"method":"validate","params":[],"id":1,"jsonrpc":"2.0"} default472 {"method":"postAsGuest","params":["NUOVE FACCINE","as@a.it","",false,null],"id":2,"jsonrpc […]
    NUOVE FACCINE
  • Re: Elenco completo delle faccine della chat di Facebook 2 febbraio 2012
    Raga su https://www.facebook.com/pages... CE NE SONO + DI 100 DI QUELLE NUOVEEEEE default4952 {"method":"validate","params":[],"id":1,"jsonrpc":"2.0"} default4952 {"method":"validate","params":[],"id":2,"jsonrpc":"2.0"} default4952 {"m […]
    NUOVE FACCINE
  • Re: Elenco completo delle faccine della chat di Facebook 2 febbraio 2012
    [[171108522930776]] Troll face […]
    Roby
  • Re: Elenco completo delle faccine della chat di Facebook 2 febbraio 2012
    comq c'e' anche [[228257790583134]]  che forma un punto di domanda […]
    Gabriele01_1
  • Re: Elenco completo delle faccine della chat di Facebook 1 febbraio 2012
    Ho tre versioni a disposizione, prova [[spongebob]] o [[spongebobitalia]], la terza versione è anche con patric [[119890158083947]] […]
    timendum
  • Re: Elenco completo delle faccine della chat di Facebook 31 gennaio 2012
    è possibile farla con la faccina di Spongebob? […]
    Verdina-
  • Re: Elenco completo delle faccine della chat di Facebook 31 gennaio 2012
    allora te spiego :O ma puo' essere anche frainteso amigaa ;;) […]
    Bene Viviani

RSS Articoli interessanti

  • Oggi chiude Splinder | Il Post
  • La prova matematica dei brogli in Russia | Il Post
  • Facebook: Timeline obbligatoria per tutti nelle prossime settimane
  • Wikipedia gratis sui cellulari in Africa | Il Post
  • Filesonic disattiva lo sharing | Il Disinformatico
  • Sky Map di Android diventa un progetto open source
  • Cory Doctorow spiega perché i computer generici spariranno | Il Disinformatico
  • Perché l’Antitrust ha multato Apple | Il Post
  • Come rispondere ad Amazon | Il Post
  • Nerdosità: Babbo Natale esiste o no?
  • aprile 2011
  • febbraio 2011
  • ottobre 2010
  • luglio 2010
  • novembre 2009
  • settembre 2009
  • agosto 2009
  • luglio 2009
  • giugno 2009
  • maggio 2009
  • aprile 2009
  • marzo 2009

Meta

  • Voce RSS
  • RSS dei commenti
  • Privacy Policy

Design

  • Sito basato su WordPress.org
  • Tema utilizzato Hybrid
  • Modificato da Timendum
loading Annulla
Post was not sent - check your email addresses!
Email check failed, please try again
Sorry, your blog cannot share posts by email.