31. marts 2006 - 23:59Der er
6 kommentarer og 1 løsning
Udtræk fra database skal være i random rækkefølge hver gang
Hvad er mest almindeligt benyttede metode til at sørge for at et databaseudtræk kommer i fuldstændig random rækkefølge hver gang kaldet sker. Jeg ved at der findes en random funktion i ASP, men kan ikke helt gennemskue om den kan bruges i denne sammenhæng.
Normalvis henter jeg data fra mine tabeller ud i arrays. Men jeg er i tvivl om jeg allerede i SQL kaldet kan sørge for at få mine records i tilfældig rækkefølge, eller om man først henter records ud i sorteret rækkefølge og derefter manipulerer det array der indeholder data.
Ok det så den hvor det er mest besværligt :) da access faktisk har en rnd inbygget men den giver ikke en ny rækkefølge hver gang. Så det bliver en blanding af ASP og SQL.
Prøv sådan her:
randomize R=clng(100000*rnd) '100000 er et "tilfældigt" valgt du kan evt prøve at rette det. SQL = "SELECT * FROM Tabel ORDER BY rnd(-(ID)*" & R & ")"
Hmm.. man plejer at sige, at intet er tilfældigt.. :-)
Eksempel: Vælg tilfældige 5 tal mellem 1 og 100000: 20 20 20 20 20
Det er 5 tilfældige tal, der intet har med hinanden at gøre, da det er "individuelle" tal.. selvom det er samme tal.. :-)
Den eneste måde hvor du 100% får et nyt udtræk hver gang, er at "huske" de random værdier du har haft..
Eksempel: 1) generer random værdi 2) indlæs de værdier, der allerede har været der 2a) hvis den nuværende værdi eksisterer i listen med de gamle random værdi, hop til #1 3) tilføj den nye random værdi til listen og tidligere værdier 4) lav dit udtræk med den nuværende random værdi
eagleeye > Det virker perfekt - jeg må dog erkende at jeg ikke helt forstår hvad der foregår her: ORDER BY rnd(-(ID)*" & R & ")" Kunne du evt. forklare det ? Og så må du i øvrigt meget gerne smide et svar :-)
thesurfer > Jeg kan godt se din pointe, men så vigtigt er det heller ikke at output er 100% forskelligt hver gang. Så jeg vælger at benytte eagleeye´s løsning. Men tak for input under alle omstændigheder.
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.