我在餐桌上有些困难。
我有一个网站,用户无法将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
或没有返回任何行。
在插入数据库之前,您应该控制/过滤输入内容(例如,根据设计标准检查数据库是否“已满”)