SQL选择计数两个条件

时间:2011-08-30 10:08:44

标签: 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')

有什么想法吗?非常感谢

2 个答案:

答案 0 :(得分:1)

为什么你认为你需要一个子查询?以下应该做

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

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

答案 1 :(得分:0)

使用'或'代替'和'

select count (*) 
from table1
where (year = $year) or (formtype = $formtype)
相关问题