Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 2 odgovora
  • 3.866 pregleda

Najnovija ↓

brisanje duplikata 31.07.2006. u 14:27 · pre 246 meseci #1
Koristim mysql server 3.23.33 i hteo bih da iz jedne tabele obrisem sve duplikate.
Ja imam formular na web stranici za prijavu, i ko se prijavi ide direktno u bazu. Primary key je ID. Desava se da se jedna ista osoba prijavi vise puta i ja dobijem u bazi iste podatke u svakom polju sem ID koji ide na autoincrement.
Preko kog upita bi moga obrisati sve duplikate (recimo one koji imaju isto ime, prezime, ulicu i datum rodjenja)?

hvala
Re: brisanje duplikata 31.07.2006. u 14:44 · pre 246 meseci #2
Za početak, dodaj kontrolu pre upisa novog sloga, da dupli slog uopšte ne bi mogao da ti se pojavi.

Kad to uradiš, mislim da će ti najjednostavnije biti da napišeš malu jednokratnu PHP skriptu za brisanje duplikata, s obzirom da ta verzija MySQL-a ne podržava ugnježđene upite.
Re: brisanje duplikata 31.07.2006. u 16:24 · pre 246 meseci #3
1. Kao sto je kolega jablan rekao, osiguraj jedinstvenost slogova.
2. Kreiraj privremenu tabelu tvoja_tabela_copy:
Code:

create table tabela_copy
as
select max(id) id, ime, prezime, ulica, rodjendan from tabela
group by ime, prezime, ulica, rodjendan
(podesi nazive kolona u svojoj tabeli)
3. dropni staru tabelu
Code:
DROP TABLE tabela;

4. preimenuj novu tabelu:
Code:
ALTER TABLE tabela_copy RENAME TO tabela;


i imas na kraju po jedan slog za svakog korisnika.


Umjesto koraka pod 3. i 4. mozes pokusati jedno medjurjesenje, ali posto nemam pri ruci MySQL server, nisam siguran da li ce raditi:
Code:
DELETE FROM tabela
USING tabela_copy
LEFT JOIN tabela_copy
ON tabela_copy.id = tabela.id;
Ako ovo medjurjesenje ne radi, isprobacu ga veceras kod kuce...
Potpis
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme