我在餐桌上有些困难。

我有一个网站,用户无法将6个不同的答案发送给课程。

用户完成此操作后,他可以纠正其他3个答案。

当用户交付了1个并更正了3个相同的modulid时,他将获得modulid批准。

我的表包含这些列:


  用户名,模态,更正方式,答案,结果


它是我遇到问题的纠正部分。如果一个纠正了,它将得到行值1,如果2个用户纠正了它,则值将变为2,依此类推。

我可以以某种方式将表行设置为默认值NULL并包含从1到3的值吗?

然后有人尝试添加4次,我想输出一条消息,如“它已满”(并且您不会将其作为搜索modulid进行更正的选项)

我可以这样写吗:

$sql  = "SELECT  modulid=1 FROM tablename  WHERE correctedby=1-3 NULL ORDER BY RAND() LIMIT 1";

最佳答案

尝试这个:

SELECT modulid FROM tablename
WHERE modulid = 1
AND (correctedby IN (1,2,3) OR correctedby IS NULL)
ORDER BY RAND() LIMIT 1


但是您的结果将是:

modulid
=======
1


或没有返回任何行。

在插入数据库之前,您应该控制/过滤输入内容(例如,根据设计标准检查数据库是否“已满”)

10-01 15:42