我在桌子上遇到一些困难。
我有一个网站,用户无法发送6个不同的课程答案。
用户完成后,他可以更正其他3个答案。
如果用户已交付1并更正了同一modulid
中的3个,则他将获得modulid
批准。
我的表格包含以下列:
用户名,模数,纠正,回答,结果
它是我遇到问题的纠正部分。如果有人纠正了一个,它将获得行值1,如果2个用户已经纠正它,则值变为2等等。
我可以以某种方式将表格行设置为默认值NULL
并包含从1到3的值吗?
然后有人尝试添加4次,我想输出像"它已满#34;(您不会将其作为搜索modulid
来纠正的选项)
我可以这样写:
$sql = "SELECT modulid=1 FROM tablename WHERE correctedby=1-3 NULL ORDER BY RAND() LIMIT 1";
答案 0 :(得分:0)
试试这个:
SELECT modulid FROM tablename
WHERE modulid = 1
AND (correctedby IN (1,2,3) OR correctedby IS NULL)
ORDER BY RAND() LIMIT 1
但你的结果要么是:
modulid
=======
1
或没有返回任何行。
您应该在插入数据库之前控制/过滤输入(例如,根据您设计的标准检查数据库是否“已满”)