Можете да използвате LIMIT m,n
както да ограничите броя на резултатите, които получавате, така и да компенсирате резултатите с определена сума.
Сега можете да направите нещо като:
SELECT * FROM questions WHERE QuizID=1 LIMIT $page,5;
Където изчислявате $page
въз основа на $_GET
променлива. Но това няма да реши вашата случайност.
Винаги можете да зададете RAND($key) чрез даден ключ, който запазвате в сесията си, за да можете ORDER BY RAND($key)
и използвайте горната гранична техника.
Вероятно най-простото за изпълнение би било да получите целия набор от резултати, да го разбъркате и да го кеширате. След това използвайте php, за да покажете само определена част от кеша.
Тъй като това е свързано с пагинация. Нека ви кажа, LIMIT m,n може да не е толкова бързо, колкото звучи. Научете как да го подобрите и прочетете повече за Ефективно пагиниране с MySQL