sql >> Database >  >> RDS >> Mysql

hoe het ophalen van een vraag uit de database willekeurig te maken?

U kunt LIMIT m,n . gebruiken om zowel het aantal resultaten dat u krijgt te beperken als de resultaten te compenseren met een bepaald aantal.

Nu zou je zoiets kunnen doen:

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

Waar bereken je de $page gebaseerd op een $_GET variabel. Maar dit lost je willekeur niet op.

Je kunt altijd RAND($key) door een bepaalde sleutel die u in uw sessie opslaat, zodat u ORDER BY RAND($key) kunt en gebruik de bovenstaande limiettechniek.

Waarschijnlijk het eenvoudigst te implementeren zou zijn om de volledige resultatenset te krijgen, deze in willekeurige volgorde te schudden en in de cache te plaatsen. Gebruik dan een php om alleen een specifiek deel van de cache te tonen.

Aangezien dit te maken heeft met paginering. Laat me je vertellen dat LIMIT m,n misschien niet zo snel is als het klinkt. Meer informatie over hoe je het kunt verbeteren en lees meer over Efficiënte paginering met MySQL



  1. converteer het Postgres-geometrieformaat naar WKT

  2. EBS R12 start en stop scripts

  3. Hoe PostgreSQL 12 op Ubuntu 20.04/18.04/16.04 te installeren?

  4. SQL-injectie-aanval - Wat doet dit?