MySQL: cancellare i doppioni

Prima di tutto scusatemi per l'offtopic, ma mi sembra una cosa interessante, visto che più di una volta mi è capitato di dover effettuare una query all'interno di un DB MySQL alla ricerca di doppioni. Ecco la soluzione.

Una cosa prima di andare avanti: diamo a Cesare quello che è di Cesare: la soluzione non è farina del mio sacco, ma l'ho trovata sul forum di Giorgio Tave e per l'esattezza in un thread chiamato "Elencare i record doppi in una tabella".

Ecco la soluzione al problema della ricerca di record doppi: 

SELECT * FROM tabella USING tabella, tabella AS tabella_tmp WHERE tabella.id > tabella_tmp.id AND tabella.campo_duplicato_1 = tabella_tmp.campo_duplicato_1 AND tabella.campo_duplicato_2 = tabella_tmp.campo_duplicato_2 AND tabella.campo_duplicato_3 = tabella_tmp.campo_duplicato_3

E nel caso si volessero cancellare i doppioni:

DELETE FROM tabella USING tabella, tabella AS tabella_tmp WHERE tabella.id > tabella_tmp.id AND tabella.campo_duplicato_1 = tabella_tmp.campo_duplicato_1 AND tabella.campo_duplicato_2 = tabella_tmp.campo_duplicato_2 AND tabella.campo_duplicato_3 = tabella_tmp.campo_duplicato_3 ...

La soluzione al problema dei doppioni è l'uso della stessa tabella come tabella di raffronto e la prima clausula del where dove vengono comparati due id che non saranno mai uguali (altrimenti tutto sarebbe un doppione).

Ringrazio ancora l'utente Magicale per aver dato la dritta.

 

Trackback URL for this post:

http://www.ziodrupal.net/trackback/1123

Questo articolo è stato segnalato su ZicZac.it.

Prima di tutto scusatemi per l'offtopic, ma mi sembra una cosa interessante, visto che più di una volta mi è capitato di dover effettuare una query all'interno di un DB MySQL alla ricerca di doppioni. Ecco la soluzione.

MySQL: cancellare i doppioni | Ziodrupal.net

Prima di tutto scusatemi per l'offtopic, ma mi sembra una cosa interessante, visto che più di una volta mi è capitato di dover effettuare una query all'interno di un DB MySQL alla ricerca di doppioni. Ecco la soluzione.

interessante;) mysql è stato uno dei primi motori di db che ho affrontato ^^

Post new comment

Google Friend Connect (leave a quick comment)
loading...