Visa ett inlägg
Oläst 2015-09-11, 09:47 #9
coredevs avatar
coredev coredev är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Sep 2007
Inlägg: 1 554
coredev coredev är inte uppkopplad
Bara ett inlägg till!
coredevs avatar
 
Reg.datum: Sep 2007
Inlägg: 1 554
Citat:
Ursprungligen postat av naak2803 Visa inlägg
Hej,
jag har en quiz-motor med över 1000 frågor.
Men jag tycker inte att SQL-satsen fungerar dåligt och med dåligt menar jag att den inte slumpar tillräckligt slumpmässigt... Har ni några andra förslag?

Kod:
SELECT * FROM dbo.quiz WHERE category = 445 LIMIT 20 ORDER BY RND()
Krav som jag har:
- Slumpa random
– Samma rad ska inte dyka upp flera ggr i samma fråga.
Som flera andra redan har varit inne på, gör på följande sätt:
1) Hämta unika fråge-id:n från databasen:
Kod:
SELECT id FROM dbo.quiz WHERE category = 445
2) Slumpa och begränsa dessa i ditt applikationslager (php, asp, jsp, etc).

3) Hämta sedan frågorna via ytterligare en SQL:
Kod:
SELECT column1, column2, etc... FROM dbo.quiz WHERE id in (1, 7, 32, 94, etc...)
Du får visseligen en ytterligare fråga till databasen men resultatet från den kan du enkelt cacha i ditt applikationslager.
coredev är inte uppkopplad   Svara med citatSvara med citat