Avatar billede leif Seniormester
07. november 2005 - 13:17 Der er 18 kommentarer og
1 løsning

Dublet søgning

Hej,

En som tilfældigvis har et script liggende til at søge efter dubletter i en tabel ?

Fx. at 2 eller flere har samme medlemsnr ?

Fra
Leif
Avatar billede bromer Nybegynder
07. november 2005 - 13:20 #1
Du kan lave det i een SQL sætning.

select column,count(1) from table GROUP BY column HAVING count(1) > 1;
Avatar billede leif Seniormester
07. november 2005 - 13:22 #2
Dvs. at det ville fx være:

select Medlemsnr,count(1) from Medlemer GROUP BY Medlemsnr HAVING count(1) > 1;
Avatar billede bromer Nybegynder
07. november 2005 - 13:23 #3
præcis
Avatar billede leif Seniormester
07. november 2005 - 13:34 #4
Hmm, kan jeg også få fx. Alle Navne som har samme nr., så jeg kan se at både Leif og Leif1 har samme nr. ?
Avatar billede bromer Nybegynder
07. november 2005 - 13:37 #5
Hvordan vi du have det. Vi har jo smækket databaseoutputtet sammen så der for hver række kun er eet nummer. Men du vil også have af vide hvilke navne der har numrene?
Avatar billede bromer Nybegynder
07. november 2005 - 13:39 #6
Det er måske muligt, hvis du benytter MySQL, da den har noget der hedder GROUP_CONCAT. Ikke at det er særlig kønt.
Avatar billede leif Seniormester
07. november 2005 - 13:47 #7
Ja, tak !

Jeg benytter selvfølgelig MySQL ! Det er kun midlertidigt, da der normalt ikke skal være 2 eller flere med samme medlemsnr.
Avatar billede bromer Nybegynder
07. november 2005 - 13:50 #8
Bare så jeg forstår dig korrekt etc vil du for eksempel have det på formatet:

+-----------+----------+-------------------------------------------------------+
| Medlemsnr | count(1) | navne                                                |
+-----------+----------+-------------------------------------------------------+
| 1        | 2        | Jesper, Åge                                          |                      +-----------+----------+-------------------------------------------------------+
| 2        | 3        | Hans, Klaus, Mogens                                  |
+-----------+----------+-------------------------------------------------------+

Eller er du ude i noget navnet?
Avatar billede bromer Nybegynder
07. november 2005 - 13:50 #9
hehe.. det så langt bedre ud i min editor
Avatar billede bromer Nybegynder
07. november 2005 - 13:51 #10
og det er da ikke en selvfølge at du benytter MySQL. Jeg benytter sjældent MySQL.
Avatar billede bromer Nybegynder
07. november 2005 - 13:55 #11
og hvilken version af MySQL benytter du?
Avatar billede leif Seniormester
07. november 2005 - 13:57 #12
Okay ! :D Er bare tilhænger af opensource ! Hvad bruger du så ?

Sådan kunne det sagtens se ud, udseendet som sådan lidt lige meget da feltet skal laves om til unikt nummer så det er en engangs forstilling at scriptet skal bruges.

Pt. 4.0.18 og kører snart 4.0.24
Avatar billede bromer Nybegynder
07. november 2005 - 14:03 #13
Jeg benytter Postgresql [1], der også er ganske opensource. Jeg tror du kan lave din query som

select Medlemsnr,count(1),GROUP_CONCAT(DISTINCT navnekolonne ORDER BY navnekolonne ASC SEPARATOR ',') as navne from Medlemer GROUP BY Medlemsnr HAVING count(1) > 1;

[1] http://www.postgresql.org/
Avatar billede bromer Nybegynder
07. november 2005 - 14:04 #14
Jeg kan så se at GROUP_CONCAT hører til version 4.1 og frem. Så den kan du alligevel ikke bruge.
Avatar billede leif Seniormester
07. november 2005 - 14:17 #15
Okay, fandt en OK løsning da det er midlertidigt.

Først en:
select Medlemsnr,count(1) from Medlemer GROUP BY Medlemsnr HAVING count(1) > 1;

Og i løkken lavede jeg en løkke som byggede på:
select Fornavn,Medlemsnr from Medlemer WHERE Medlemsnr LIKE "'.$row["Medlemsnr"].'"

Smid et svar.
Avatar billede bromer Nybegynder
07. november 2005 - 14:22 #16
oki.
Avatar billede leif Seniormester
07. november 2005 - 14:23 #17
Forstod du det jeg sagde ?
Avatar billede bromer Nybegynder
07. november 2005 - 14:24 #18
Det tror jeg. Er der stadig noget du er i tvivl om?
Avatar billede leif Seniormester
08. november 2005 - 10:04 #19
Nope !
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester