Mysql
 sql >> база данни >  >> RDS >> Mysql

как да рандомизирам извличането на въпрос от базата данни?

Можете да използвате 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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изберете стойности, които започват с число

  2. Еквивалент на varchar(max) в MySQL?

  3. Датата на Java SQL отпада с 1 ден

  4. Избягване на SQL инжектиране в генериран от потребителя SQL-редовен израз

  5. Най-бързият начин за вмъкване на 134675 стойности в отдалечена база данни