mysql - SQL select 计算两个条件

标签 mysql

我正在制作在线表格。在用户填写此表格之前,系统会要求他选择表格类型和表格年份。这些值分别放置在 $formType 和 $year 中。

我想阻止用户两次提交相同的表单,即如果用户尝试提交 2011 年的表单 A,并且数据库中已经存在该表单,那么他将被阻止这样做。

因此我需要一个具有两个条件的 SELECT COUNT 函数,从 php 变量获取。 到目前为止,我已经成功地在 SQL 中做到了这一点,但仅限于使用一个条件时,如下所示:

SELECT COUNT(`formType`)
    FROM `table1`
    WHERE `formType` = '$formType' ;

但是,当我尝试过滤这两个条件时,它不起作用。代码如下:

SELECT COUNT(*)
    FROM (
    SELECT DISTINCT 'year', 'formType' 
    FROM `table1`
    WHERE `year` = '$year' AND 'formType' = '$formType')

有什么想法吗?非常感谢

最佳答案

您认为为什么需要子查询?以下应该做

SELECT COUNT(*)
    FROM `table1`
    WHERE `year` = '$year' AND `formType` = '$formType'

您可能希望每年每个用户允许一种表单类型,因此您希望在查询中添加第三个条件,例如 AND userID = xx (除非您有一个每个用户的表)。

关于mysql - SQL select 计算两个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7241610/

相关文章:

python - 使用 MySQLdb 在 python 中发出警告

mysql - 从 Select max() 查询中获取正确的行结果

Python MySQLdb查询参数 "IS NULL"而不是 "= NULL"

PHP MySQLi 在外部连接时出错,但可以从其他来源连接

mysql - 在 mySQL 查询中组合常用值

mysql 如何避免 select 请求中的数据重复

java - persistence.xml 中的两个持久性单元 - 一个有效,另一个无效

mysql - 触发更新多个表

mysql - 在表的第一列中获取 1 个结果,在表的第二列中获取所有结果

mysql - 如何在 WAMP 上更改 mysql 数据库目录