Avatar billede jakobdo Ekspert
10. juni 2004 - 21:35 Der er 3 kommentarer og
1 løsning

Dagens spiller, nogle gange dagens spillere! Hvordan?

Hej,
jeg har lavet en fodbold side, hvor hver spiller efter kampen får X antal stemmer!

I dag bruger jeg følgende SQL:
SELECT
nick,
hold
FROM stemmer, kampe, brugere
WHERE kampe.id = stemmer.k_id
AND brugere.id = stemmer.b_id
AND datotid < NOW()
ORDER  BY kampe.datotid DESC,
stemmer.antal DESC,
brugere.nick
LIMIT 1

Hvordan gør jeg sådan, at hvis der er 2 spillere som har 4 stemmer, så får jeg 2 records!
Hvis en spiller har 5 stemmer, og nummer 2 har 3, får jeg en record osv...
Avatar billede arne_v Ekspert
10. juni 2004 - 21:45 #1
Den dovne løsning:

dropper LIMIT 1
SELECT'er stemmer.antal
lader applikationen læse indtil stemmer.antal ændrer sig

MySQL løsning:

2 queries
først en SELECT MAX(stemmer.antal) ...
dernæst er SELECT ... WHERE stemmer.antal=X  (uden LIMIT)

anden database løsning:

SELECT ... WHERE stemmer.antal = (SELEECT MAX(stemmer.antal) ...)
Avatar billede arne_v Ekspert
10. juni 2004 - 21:45 #2
Den sidste virker muligvis også i MySQL 4.1.x
Avatar billede jakobdo Ekspert
10. juni 2004 - 22:04 #3
Smid er svar!
Avatar billede arne_v Ekspert
10. juni 2004 - 22:21 #4
ok
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