Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Duplikati u bazi -MySql

[es] :: MySQL :: Duplikati u bazi -MySql

[ Pregleda: 5660 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Kusur
Grafički dizajner
Beograd

Član broj: 2485
Poruke: 208
*.54.EUnet.yu



Profil

icon Duplikati u bazi -MySql06.03.2004. u 16:14 - pre 244 meseci
Pozdrav svima

Php, mysql

Da li neko zna kako da napravim sql upit koji će da mi prikaže duplikate-iste redove iz baze?

Primer:
Upit koji će prikazati samo email-ove i imena korisnika koji imaju isti email.


Rbr.___Email________Ime

1. [email protected] - Petar Petrovic
2. [email protected] - Jovan Jovanovic
3. [email protected] - Milan Mitrovic

itd.

Unapred hvala
Kusur
 
Odgovor na temu

broker

Član broj: 2415
Poruke: 8514
212.62.59.*



+11 Profil

icon Re: Duplikati u bazi -MySql06.03.2004. u 17:05 - pre 244 meseci
Grupises slogovre po polju koje proveravas i korsitis funkciju count() da ti prebroji broj slogova u listi. Sve grupe koje imaju vise od jednog sloga sadrze duplikate.
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
*.dialup.neobee.net.

Sajt: www.novikorisnik.net


+5 Profil

icon Re: Duplikati u bazi -MySql06.03.2004. u 19:22 - pre 244 meseci
Code:
SELECT *
FROM korisnici
WHERE email IN
 (
  SELECT email
  FROM korisnici
  GROUP BY email
  HAVING COUNT(*) > 1
 )
ORDER BY email

Na žalost, ovo neće da radi u MySQL-u, još uvek ne. Najavljeno je za narednu verziju jezika...
U međuvremenu - mora da se radi u 2 koraka.

Prvi query vraća listu multipliciranih emailova, što kroz PHP treba da se unese kao lista vrednosti za drugi query...
 
Odgovor na temu

_owl_

Član broj: 318
Poruke: 1043
*.vdial.verat.net



+3 Profil

icon Re: Duplikati u bazi -MySql06.03.2004. u 23:00 - pre 244 meseci
A sta ce ti spoljni upit, dovoljno je samo unutrasnji:
Code:

SELECT email, ime, COUNT(email) 
FROM tabela
GROUP BY email, ime
HAVING COUNT(email)>1


Owl
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
*.dialup.neobee.net.

Sajt: www.novikorisnik.net


+5 Profil

icon Re: Duplikati u bazi -MySql06.03.2004. u 23:22 - pre 244 meseci
Čini mi se da ovo ne radi... odnosno radi samo za one koji imaju duplirano i ime i email. Traži se lista svih imena vezanih za duplikate emaila.
 
Odgovor na temu

broker

Član broj: 2415
Poruke: 8514
212.62.59.*



+11 Profil

icon Re: Duplikati u bazi -MySql07.03.2004. u 12:35 - pre 244 meseci
Cek cek.. ti ne razumes SQL upit koji ti je coek dao?

Imas detaljno objasnjenje na http://www.mysql.com/documenta...apter/index.html#Counting_rows
 
Odgovor na temu

_owl_

Član broj: 318
Poruke: 1043
*.vdial.verat.net



+3 Profil

icon Re: Duplikati u bazi -MySql07.03.2004. u 14:54 - pre 244 meseci
Da, da sad sam pogledao sta je covek trazio
Owl
 
Odgovor na temu

Kusur
Grafički dizajner
Beograd

Član broj: 2485
Poruke: 208
*.3.EUnet.yu



Profil

icon Re: Duplikati u bazi -MySql07.03.2004. u 15:54 - pre 244 meseci
Možda nisam dobro objasnio šta mi treba, ali ste mi ipak pomogli

Upotrebio sam kod od _owl_ -a:

Code:
SELECT mail, COUNT(mail)
FROM korisnici
GROUP BY mail
HAVING COUNT(mail)>1


Izbacio sam grupisanje po imenu zato što greši u brojanju

Baš sam to tražio - sad znam koji su mail-ovi duplikati i koliko ih ima.

Puno hvala!
Kusur
 
Odgovor na temu

bluesman

Član broj: 4505
Poruke: 1895
*.5.eunet.yu



+1 Profil

icon Re: Duplikati u bazi -MySql12.03.2004. u 13:58 - pre 244 meseci
Dobio si duplikate i znas da ima 5 ovih, 15 onih, 7 drugih... kako da obrises sve duplirane a da ostane po jedan. Znaci hocu umesto 5 sa istim e-mailom da obrisem 4 a da ostane samo 1. Naravno, da se ne radi rucno.

Ili konkretnije, imam bazu od oko 25000 korisnika gde su se neki prijavili i po 70 puta. proverio sam i imam oko 3 hiljade korisnika koji su se registrovali vise od jednom (po postanskoj adresi) sto daje negde oko 7 hiljada upisa. Opet postoji problem posto verovatno Karadjordjeva 12 postoji i u Beogradu i u Novom Sadu. ali to je sada manje vazno... mogu da ga grupisem i po imenu i prezimenu. Postoji jos jedna problem, sa iste adrese su se registrovali njih cetvoro (cela porodica) a ja hocu samo 1 po adresi.

Da li ima neko ideju kako da (naravno, ne rucno) obrisem 69 upisa tog sto se registrovao 70 puta a da ostane samo 1 (bilo koji).
Goran Pilipović fka bluesman
 
Odgovor na temu

Jbyn4e

Član broj: 422
Poruke: 6049
*.sbb.co.yu



+257 Profil

icon Re: Duplikati u bazi -MySql12.03.2004. u 14:11 - pre 244 meseci
Hm, mozda je najlaksi (koji mi sad pada na pamet) nacin napraviti skript koji ce da puni drugu (novu) tabelu(e) sa podacima, s tim da kad uzima iz stare proveri da li u novoj vec postoji podudaranje, pa da ubacuje samo ako ne postoji. Naravno, posle obrises stare tabele, nove preimenujes u stare.

Nemam sad vremena da razmisljam o tome....
Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

bluesman

Član broj: 4505
Poruke: 1895
*.5.eunet.yu



+1 Profil

icon Re: Duplikati u bazi -MySql12.03.2004. u 14:28 - pre 244 meseci
Jedno resenje je kopiranje svih duplikata u temp tabelu, pa brisanje istih iz originalne tabele, a onda preko distinct iz temp tabele vratiti po 1 row u originalnu tabelu... da li postoji bolje, elegantnije resenje?
Goran Pilipović fka bluesman
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
194.247.222.*

Sajt: www.novikorisnik.net


+5 Profil

icon Re: Duplikati u bazi -MySql12.03.2004. u 14:32 - pre 244 meseci
Relativno lako.

Metod 1:
Poteraš upit da ti grupiše po svim poljima koja želiš da budu jedinstvena, gde je count(*) veće od 1. Prihvatiš rezultat i provučeš ga kroz petlju gde prvo brišeš sve redove nađenih duplikata i odmah nakon toga kreiraš novi zapis sa podacima reda iz rezultata.

Metod 2:
Napraviš privremenu tabelu gde insertuješ grupisane duplikate. Potom brišeš duplikate. Na kraju prebaciš podatke iz privremene tabele i ubiješ je. Ovo bi trebalo da brže radi.

Ovo ne radi baš kako si opisao jer se brišu svi zapisi pa potom dodaje jedan, ali deluje jednostavnije za realizaciju.
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
194.247.222.*

Sajt: www.novikorisnik.net


+5 Profil

icon Re: Duplikati u bazi -MySql12.03.2004. u 14:34 - pre 244 meseci
Eh, da - napomena: kad insertuješ u temp tabelu - ne insertuješ sve duplikate nego samo 1 zapis po svakoj grupi duplikata.
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
195.252.85.*

Sajt: localhost


+5 Profil

icon Re: Duplikati u bazi -MySql12.03.2004. u 16:17 - pre 244 meseci
napraviš drugu tabelu sa istim poljima, dodaš UNIQUE ključ na polja koja u kombinaciji moraju biti jedinstvena (adresa, grad) i uradiš jedan prosti

insert into tabela2 select * from tabela1

 
Odgovor na temu

[es] :: MySQL :: Duplikati u bazi -MySql

[ Pregleda: 5660 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.