sql >> Databasteknik >  >> RDS >> Mysql

hur man randomiserar hämtning av frågor från databasen?

Du kan använda LIMIT m,n att både begränsa antalet resultat du får och kompensera resultaten med ett givet belopp.

Nu kan du göra något som:

 SELECT * FROM questions WHERE QuizID=1 LIMIT $page,5;

Där du beräknar $page baserat på en $_GET variabel. Men detta kommer inte att lösa din slumpmässighet.

Du kan alltid se till RAND($key) av en given nyckel som du sparar i din session så att du kan ORDER BY RAND($key) och använd ovanstående gränsteknik.

Det enklaste att implementera skulle förmodligen vara att hämta hela resultatet, blanda det och cache det. Använd sedan en php för att bara visa en specifik del av cachen.

Eftersom detta är relaterat till paginering. Låt mig säga dig, LIMIT m,n kanske inte är så snabbt som det låter. Läs om hur du förbättrar det och läs mer om Effektiv paginering med MySQL



  1. Exportera databas med MySQL Workbench med INSERT-satser

  2. Hur man får en lista över månader mellan två datum i mysql

  3. MySQL Boolean tinyint(1) håller värden upp till 127?

  4. Hur skapar man en databas från skalkommandot?