Avatar billede curriculum Nybegynder
17. februar 2004 - 10:01 Der er 8 kommentarer og
1 løsning

Random rownumbers

Jeg skal lave en random med 7 svar, idet SQL tabellen indeholder 8000 records og er længe at recursivere gennem den, vil jeg finde ud af om det er muligt at først randomere 7 tal, siden hente data fra de specifikke row numre som er randomeret.
Er dette muligt og hvordan ?
Avatar billede Slettet bruger
17. februar 2004 - 10:03 #1
Hvilken db er det?
Avatar billede curriculum Nybegynder
17. februar 2004 - 10:03 #2
MS SQL
Avatar billede Slettet bruger
17. februar 2004 - 10:04 #3
Hvis det er mySQL kan du gøre det allerede i sql'en

SELECT attribut FROM tabel ORDER BY Rand() LIMIT 0,7
Avatar billede Slettet bruger
17. februar 2004 - 10:06 #4
Men principielt kan du vel lave et array med 7 random tal og så i din sql bruge IN
Avatar billede Slettet bruger
17. februar 2004 - 10:07 #5
SELECT attribut FROM tabel WHERE id IN (" & ditArray & ")
Avatar billede curriculum Nybegynder
17. februar 2004 - 10:08 #6
MS SQL bruger ikke LIMIT funktionen, selvom det ville være svaret..
Avatar billede curriculum Nybegynder
17. februar 2004 - 10:08 #7
Jeg forsøger lige IN functionen..
Avatar billede curriculum Nybegynder
17. februar 2004 - 10:16 #8
IN funktionen fungerer selvfølgeligt kun hvis alle tallene er i hælene på hinanden, hvis en row er deactiveret, så giver randomeringen fejl.. en fejlfri løsning er den bedste ikke..
Avatar billede curriculum Nybegynder
17. februar 2004 - 10:30 #9
MS SQL har en Rand() funktion, den hedder NEWID() istedet...
SELECT TOP 7 Id FROM tabel ORDER BY NEWID()
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
Kurser inden for grundlæggende programmering

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