Avatar billede per-d Nybegynder
01. februar 2003 - 18:57 Der er 5 kommentarer og
2 løsninger

alternativer til RAND()

Findes der ikke et eller andet man kan skrive i stedet for RAND() hvis man vil have at databasen skal vælge forskellige sider hele tiden problemet med RAND() er nemlig den godt kan finde på at tage den samme række fem gange i træk og det jeg skal bruge den til skal den tage noget forskelligt hver gang.
Avatar billede _darkstar_ Nybegynder
01. februar 2003 - 22:05 #1
Hvorfor benytter du databasens RAND-funktion?
Avatar billede _darkstar_ Nybegynder
01. februar 2003 - 22:43 #2
Hvis det har noget med at du gerne vil have en pseudo-random-funktion til sortering efter, så brug primær-nøglen i tabellen. Hvis nøglen hedder id, så:

SELECT * FROM tabel
ORDER BY MOD(id * <tilfældigt heltal> * 10000001, 10001)

Det tilfældige heltal skal genereres hver gang forespørgselen køres.
Avatar billede sjap Praktikant
02. februar 2003 - 17:47 #3
Så er du vel nødt til at lave en liste over de "brugte" sider. Du kan så stadig bruge RAND(). Hvis siden så findes i "brugt" listen, så brug RAND() igen indtil det lykkes - her risikerer du dog en uendelig lykke kan jeg se.

Lav en tabel med de sider, der kan vælges. Brug RAND() til at pege på record-nummeret. Når en side er valgt, fjernes den fra listen. Sådan fortsætter du indtil listen er tom (eller indtil du synes nogen af de gamle sider skal tilbage på listen, men det er en helt anden snak).
Avatar billede _darkstar_ Nybegynder
02. februar 2003 - 17:58 #4
Jeg ville meget gerne ende i en uendeligt lang lykke!

Spøg til side :-)
Avatar billede sjap Praktikant
02. februar 2003 - 18:27 #5
Tja, hvem vil ikke det. Godt set ;-)
Avatar billede per-d Nybegynder
02. februar 2003 - 18:31 #6
kan i begge ikke lige oprette et svar så jeg kan dele point mellem jer
Avatar billede _darkstar_ Nybegynder
02. februar 2003 - 18:42 #7
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