[ XGhost @ 26.07.2014. 01:12 ] @
Kako da obrisem duple podatke u bazi?
Imam duple podatke npr u bazi u polju ime_i_prezime.
[ bogdan.kecman @ 26.07.2014. 02:06 ] @
najcesce tako sto dizajniras bazu da ne mozes da imas duple podatke ...
e sad kad ih vec imas - tesko :(
najlakse tako sto napravis drugu tabelu i prespes u nju podatke sa
insert select distinct
[ tarla @ 26.07.2014. 02:18 ] @
Ako je ime i prezime duplo, ne znači da je to ista osoba...
[ after @ 27.07.2014. 14:35 ] @
Dodaj unique index sa ALTER IGNORE TABLE... sintaksom, to radi na MySQL verzijama 5.1 i visim. MySQL ce dozvoloti kreiranje unique key iako ima duplih rekorda i obrisace duple.

Ili preko sql:

Code:
delete from table where id in (select id from table group by id having count(*) > 1) limit 1


ili neka slicna sql konstrukcija sa ili bez limit itd.
[ bogdan.kecman @ 27.07.2014. 15:37 ] @
alter je smor za ove stvari, radi ali je bas smor (mnogo stvari moze da krene naopako) .. mnogo bolje copy u novu tabelu .. obicno kada se ispravljaju ovakvi problemi mora da se uradi neki insert select .. on duplicate update .. alter ignore radi isto sto i insert ignore select * from stim da sa insert ignore select imas mnogo vecu kontrolu
[ XGhost @ 27.07.2014. 20:21 ] @
Rjesio sam to (1 sat nakon postavljanja posta).
Kopiranjem podataka u privremenu tabelu a kasnije preimenovanje iste.