php - MySql -- 如何记录使用过的条目?

标签 php mysql

我有一个应用程序(更可能是一个测验应用程序),我在 MySQL 数据库中保存了我所有的 1000 个测验,当用户请求一个问题时,我想从这个表中检索一个随机问题,我可以使用 RAND 轻松地做到这一点() function in MySQL.. 我的问题是,我不想向用户提出相同的问题两次或更多次,我怎样才能记录检索到的问题?我是否必须为每个用户创建表?这不会增加加载时间吗??请帮助我,任何帮助都会帮我一个大忙..

-问候

最佳答案

如果您需要的时间很短,请为此使用用户的 $_SESSION

如果您需要长期(比如明天,而不是问相同的问题)- 您必须为 usersToQuestions 创建额外的表,您将在其中存储用户 ID 和问题已经询问过用户。

在这两种情况下检索问题都需要一个简单的 IN 条件:

SELECT * FROM questions 
WHERE id not IN  ('implode(",", $_SESSION["asked"])')

SELECT * FROM questions 
WHERE id not IN  ( 
    SELECT question_id FROM questions2users WHERE userid = 123
)

关于php - MySql -- 如何记录使用过的条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14010295/

相关文章:

php - pdo 语句始终返回 true

PHP 数组数字

php - 如何从数据库中的 2 个不同表中获取 Laravel 中选定选项的值

MySQL ;大数的最佳数据类型

MySQL 复合键完整性

MySQL在多列中计数值

php - mysqli_query 仅在存在 WHERE 语句时返回结果

php - 使用 PHP,如何在使用 Zendframework 加密文件过滤器(使用 MYCRPT)和 rijndael-256 时删除 NUL 字符

php - 如何在ionic 4中将图像上传到数据库MYSQL?

索引的Mysql工作