webForumDet fria alternativet

Rand

Databaser & SQL

2 svar · 382 visningar · startad av skarbratt

Medlem sedan juli 2000325 inlägg
Frågan#1

Hur använder jag "RAND" i SQL, och funkar det lika bra i Access?

SQL = "SELECT * FROM Banner, r_subAreas WHERE r_subAreas.subID = "&subArea&" AND Banner.PageID = r_subAreas.pageID AND Banner.bannerLink <> '' AND Banner.bannerImage <> ''  ;"

Det finns tex 5 stycken lagrade PageID i "Banner" som stämmer överäns med resten av SQL sattsen. Men om jag vill slumpa fram någon av dem, hur gör jag då? Vill gärna använda "RAND".

------------------
fencing for you?
http://www.fencing4u.nu/

Medlem sedan dec. 19991 072 inlägg
#2

om det är pageID du vill slumpa fram kan du göra så här:

SQL = "SELECT * FROM Banner, r_subAreas WHERE r_subAreas.subID = "&subArea&" AND Banner.PageID = ROUND(RAND() * 4 + 1, 0) AND Banner.bannerLink <> '' AND Banner.bannerImage <> '' ;"

för ett exempel kan en enklare sats se ut:

SELECT * FROM db WHERE kolumn = ROUND(RAND() * 4 + 1, 0)

detta ger dig ett tal med start på 1 och slut på 5.

------------------
Fredrik Klarqvist
fredrik.klarqvist@swipnet.se
www.streetwise.se/fredrik/

Medlem sedan juli 2000325 inlägg
#3

Ok, en bra början, men problemet är att mina pageID heter tex 121, 134, 136, 159, etc

Och jag vet inte hur många pageid jag har får utt varje gång. Har visserligen löst det genom att ha två sql satser där den första räknar antal PageId medan den andra går direkt till ett page id med hjälp av "Move". Där emellan finns en slumpfunktion som slummpar fram ett tal av dem som jag fick i den första satsen.

Men kan man göra detta i en satts?

------------------
fencing for you?
http://www.fencing4u.nu/

257 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)