php - 表行值 (MySql)

标签 php mysql sql

我在使用表格时遇到一些困难。

我有一个网站,用户无法发送 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/

相关文章:

mysql - 大查询 SQL 中其他列中 2 个提取列的总和

php - 如何防止 PHP 中的 SQL 注入(inject)?

sql - 基于国家值(value)的汇总

mysql - (+) mysql 中外连接的语法

javascript - 使用 jquery/php 在 mysql 中进行内联更新

mysql - 创建带参数的mysql函数

php - 标准化数据库的工具?

mysql - 根据另一个字段的内容添加或减去值

php - 聚合函数 SUM() 返回 null PHP

php - 如何使用排序结果作为另一种MySQL语法的“ORDER BY”基础?