Avatar billede cs_henrik Nybegynder
22. november 2001 - 16:24 Der er 3 kommentarer og
1 løsning

SELECT 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 teepee Nybegynder
22. november 2001 - 17:06 #1
måske skal du bruge rownum i stedet for et decideret id felt. Så behøver du heller ikke sortere
Avatar billede cs_henrik Nybegynder
22. november 2001 - 18:39 #2
Jeg kan ikke se, at det løser problemet :-/
Avatar billede cs_henrik Nybegynder
22. november 2001 - 20:10 #3
Jeg acceptere, at der skal en kompromisløsning til :-/
Avatar billede teepee Nybegynder
23. november 2001 - 09:39 #4
rownum er ALDRIG fuld af huller!
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