Avatar billede schaefner Juniormester
15. juni 2003 - 22:47 Der er 7 kommentarer og
1 løsning

speciel GROUP BY

Hvis jeg nu har disse data i min tabel:

hej1
hej1
hej1
hej1
hej2
hej3

Så ønsker jeg mig at udtrækket skal blive således:

hej1
hej1
hej1
hej2
hej3

Det vil sige, hvis det er mere end end tre med samme navn, så skal den kun vise tre af dem. Kan dette lade sig gøre i MySQL?

/Jesper Sørensen
Avatar billede -master-d- Nybegynder
15. juni 2003 - 22:57 #1
Ja alt kan jo næsten lade sig gøre, men enten skal du bruge en subselect i din select eller også skal du have to selects.
Avatar billede schaefner Juniormester
15. juni 2003 - 22:58 #2
alt er velkommen ;)
Avatar billede -master-d- Nybegynder
15. juni 2003 - 23:02 #3
Hvis vi nu prøver med subselects så skal den nok se sådan her ud :

SELECT TOP 3 * FROM Tabel WHERE hejfelt = ("SELECT DISTINCT(hejfelt) FROM Tabel")
Avatar billede Slettet bruger
15. juni 2003 - 23:05 #4
Mig bekendt kan det ikke lade sig gøre i MySQL.
Avatar billede -master-d- Nybegynder
15. juni 2003 - 23:08 #5
Nej det tror jeg heller ikke at det kan ihvert fald ikke i de gamle versioner, men ellers skal du lave et loop, hvor det første recordsets værdi bruges i din
SELECT TOP 3 * From Tabel.

Nu ved jeg ikke helt hvad serversprog vi snakker, men går næsten udfra at det er php.
Avatar billede -master-d- Nybegynder
15. juni 2003 - 23:25 #6
Det skal lige siges at jeg bestemt ikke er nogen mester i php og normalt holder mig langt fra det, men mon ikke det skal se nogenlunde sådan her ud så.

$query = mysql_query("SELECT DISTINCT(hejfelt) FROM Tabel");
if (mysql_num_rows($query) > 0){
$rs = mysql_fetch_array($query);
$query2 = mysql_query("SELECT TOP3 * FROM Table where hejfelt = '$rs'");}


I mit normale serversprog ASP ville det se sådan her ud :

Set rs = Conn.Execute("SELECT DISTINCT(hejfelt) FROM Tabel")
If Not(rs.bof or rs.eof) Then
Set rs2 = Conn.Execute("SELECT TOP 3 hejfelt FROM Tabel WHERE hejfelt = '"& rs("hejfelt") &"'")
If Not(rs2.bof or rs2.eof)
Do While not rs2.eof
Response.Write rs2("hejfelt") & "<br>"
rs.Movenext
Loop
End If
End If
Avatar billede schaefner Juniormester
16. juni 2003 - 00:16 #7
master-d >> Jeg brugte metoden med to selects. Godt nok ikke helt som du har skrevet, men du får point for forsøger ;)
Avatar billede -master-d- Nybegynder
16. juni 2003 - 12:44 #8
okay, jeg takker for pointene. Jeg er kun ved bynderstadiet i PHP og aner faktisk ikke helt hvad det var jeg fyrede :)
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
Computerworld tilbyder specialiserede kurser i database-management

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