Avatar billede jes-eu Nybegynder
26. juli 2006 - 10:47 Der er 9 kommentarer

Random pick i DB

Hejsa Eksperter,

Hvordan kan man vælge en tilfældig post fra sin database?

Jeg har 100 forskellige produkter og jeg vil gerne have der vælges 2 tilfældige produkter hver gang min side "refreshes".

Mange hilsner
Jes
Avatar billede Slettet bruger
26. juli 2006 - 10:54 #1
WHERE id=rand(1,MAX(id)) GROUP BY id

vil jeg da tro
Avatar billede nielle Nybegynder
26. juli 2006 - 10:56 #2
Syntaks og fremgangsmåde afhænger af hvilken database der er tale om. Det er desværre ikke standardiseret i SQL-syntaksen.
Avatar billede juggalo Nybegynder
26. juli 2006 - 15:15 #3
hvis det er MS SQL server kan du sige

SELECT det-du-vil-have-med, NewID() as Random
WHERE.....
ORDER BY Random

Min erfaring er, at det performer væsentligt bedre end blot at skrive

ORDER BY NewId()
Avatar billede Slettet bruger
26. juli 2006 - 16:02 #4
Med SQL kan du sige:

SELECT * FROM table ORDER BY RAND() LIMIT 2
Avatar billede Slettet bruger
26. juli 2006 - 16:02 #5
MySQL, that is.
Avatar billede jes-eu Nybegynder
31. juli 2006 - 17:21 #6
Det lyder fint, jeg prøver det lige af og vender tilbage.
Avatar billede jes-eu Nybegynder
01. august 2006 - 08:59 #7
Det virker ikke, jeg får en fejl. Jeg bruger SQL på en MS access database
Avatar billede nielle Nybegynder
01. august 2006 - 18:49 #8
Som sagt afhænger syntaksen af datanbasen som bruges (jeg ved det - dybt godnat!). En for MySQL, en anden for MS SQL, en helt tredje for Access:

<%
Randomize
etRndTal = CLng(-100000 * Rnd)
SQL = "SELECT TOP 2 * FROM dinTabel ORDER BY Rnd(id * " & etRndTal & ")"
%>

- hvor id skal være navnet på din primærnøgle.
Avatar billede nielle Nybegynder
07. august 2006 - 20:47 #9
Har du fået kigget på det?
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