我在使用表格时遇到一些困难。
我有一个网站,用户无法发送 6 个不同的类(class)答案。
用户完成此操作后,他可以更正另外 3 个答案。
当用户交付 1 个并更正 3 个相同的 modulid
时,他将获得该 modulid
的批准。
我的表格包含这些列:
username, modulid, correctedby, answer, result
这是我遇到问题的纠正部分。如果一个用户纠正了一个,它将获得行值 1,如果 2 个用户纠正了它,则值更改为 2,等等。
我可以以某种方式将表行设置为具有默认值 NULL
并包含从 1 到 3 的值吗?
然后有人尝试添加一些东西 4 次,我想输出一条类似“it full”的消息(并且您不会将其作为搜索 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
或者没有返回行。
您应该在插入数据库之前控制/过滤输入(例如,根据您设计的标准检查数据库是否“已满”)
关于php - 表行值 (MySql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23362365/