Avatar billede cs_henrik Nybegynder
22. november 2001 - 15:28 Der er 1 kommentar og
1 løsning

Tilfældig række

Jeg har et stykke tid forsøgt at lave en query, som skal opfylde en del kriterier. Det er ikke lykkes mig at få dem alle opfyldt, så here goes:

I bund og grund skal jeg bruge et query (og kun ét), som giver mig en tilfældig række. Det har jeg forsøgt at opfylde vha. følgende statement:

SELECT * FROM tabel WHERE id >= floor(random()*(SELECT max(ID)+1 FROM member)) ORDER BY id LIMIT 1;

Det virker også godt nok sålænge tabellen ikke er fuld af \"huller\" - altså f.eks. at ID nr. 52 kommer efter ID nr. 10. Alt hvad der bliver valgt efter 10 bliver 52. Sandsynligheden for, at et bestemt ID bliver valgt er højere, jo flere \"huller\" der er før denne.

Kan nogen hjælpe?


Avatar billede cs_henrik Nybegynder
22. november 2001 - 16:26 #1
Åbenbart forkert gruppe
Avatar billede aggie Nybegynder
30. januar 2002 - 22:06 #2
nej, der er bare ikke ret meget liv herinde..

jeg har siddet med det samme for 3 minutter siden - løsningen er såre simpel;

SELECT random() AS rand_garbage , * FROM tabel ORDER BY rand_garbage LIMIT 1;

mere skal der ikke til :)
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