PHP MySQL : GET new way to query SQL

标签 php mysql arrays

我的 SQL 查询中有一个问题游戏测验

  • 问题 1 到 10
  • 我使用sql随机查询来选择问题
  • 使用array push 保留上一题
  • 使用 sql 查询 [query from array push] 选择新问题(不再显示以前的问题)

第一个问题开始

  • 1: SELECT * FROM questions WHERE catid="9" ORDER BY RAND() LIMIT 0 , 1
  • 2: SQL查询get id=2 so array push = (2)

第二题开始(如果答案正确)

  • 1: SELECT * FROM questions WHERE catid="9" AND ( id <> "2" ) ORDER BY RAND() LIMIT 0 , 1
  • 2: SQL 查询得到 id=5 所以数组 push = (2,5)

第三题开始(如果答案正确)

  • 1: SELECT * FROM questions WHERE catid="9" AND ( id <> "2" AND id <> "5" ) ORDER BY RAND() LIMIT 0 , 1
  • 2: SQL 查询 get id=1 so array push = (2,5,1)

    ...问题开始(如果答案正确)

  • 1:....

  • 2:....

所以我只想知道我是否有 1000 个问题,所以我的 SQL 查询将:

SELECT * FROM questions WHERE catid="9" AND ( id <> "2" AND id <> "5" AND id <> "1" AND .... AND id <> "999" ) ORDER BY RAND() LIMIT 0 , 1

这对于页面处理是否应该很慢?

如果很慢,我们是否应该有另一种方法来处理这个查询?谢谢....

最佳答案

如何在开始时获取整个问题数组,然后从中选择一个随机问题(使用随机数乘以数组的长度)并在询问之后 - 只需将其从数组中删除或将其移动到一个不同的数组——也许是“questionsAsked”之类的?这样你就不需要不断地添加到排除列表中——你只需从剩下的问题中选择? questionsAsked 数组保存了被问问题的列表。

关于PHP MySQL : GET new way to query SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36196064/

相关文章:

PHP 继承 : child class overriding parent variable/property for use in constructor

mysql - 在MYSQL中合并多个数据集

mysql 触发器在 wamp 服务器上不起作用

python - 在不创建列表的情况下填充一个 numpy 数组

javascript - 如何编写非残酷搜索代码

php - 每次更新到mysql的html表单数组

php - 3rd 方网站身份验证库(如 openid)

php - session 已在 FOS User Bundle Registration Confirmation 中开始

sql - 如何在 MySQL 数据库中显示所有包含更多信息(创建日期、大小等)的表?

python - numpy:使用 OR 将多个赋值转换为单个赋值