sql >> Databáze >  >> RDS >> Mysql

jak randomizovat načítání otázky z databáze?

Můžete použít LIMIT m,n omezit počet získaných výsledků a kompenzovat výsledky o danou částku.

Nyní můžete udělat něco jako:

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

Kde vypočítáte $page na základě $_GET proměnná. Ale to nevyřeší vaši náhodnost.

Vždy můžete zadat RAND($key) daným klíčem, který si ve své relaci uložíte, abyste mohli ORDER BY RAND($key) a použijte výše uvedenou limitní techniku.

Pravděpodobně nejjednodušší by bylo získat celou sadu výsledků, zamíchat ji a uložit do mezipaměti. Poté použijte php k zobrazení pouze konkrétní části mezipaměti.

Protože to souvisí se stránkováním. Řeknu vám, LIMIT m,n nemusí být tak rychlý, jak to zní. Zjistěte, jak jej zlepšit a přečtěte si více o Efektivní stránkování pomocí MySQL



  1. Vrátí Oracle transakci zpět kvůli chybě?

  2. MySql - Jak aktualizovat část řetězce?

  3. Jquery datepicker s Ajaxem nefunguje

  4. Rychlost dotazu na základě pořadí sloupců