Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql查询中的两个where条件_Mysql - Fatal编程技术网

mysql查询中的两个where条件

mysql查询中的两个where条件,mysql,Mysql,我有一张像下面这样的桌子 我想要下面的输出 |2010-03-22 | 2 | ab | 1| |2010-03-22 | 2 |如果| 1| |2010-03-22 | 2 |他| 1| 尝试使用或代替和: .... date="2010-03-22" OR errors="Yes" GROUP BY QA 您可以通过以下方式执行此操作: SELECT date, COUNT(dom), QA, COUNT(NULLIF(errors, 'No')) FROM reports WHERE d

我有一张像下面这样的桌子

我想要下面的输出

|2010-03-22 | 2 | ab | 1| |2010-03-22 | 2 |如果| 1| |2010-03-22 | 2 |他| 1|
尝试使用
代替

.... date="2010-03-22" OR errors="Yes" GROUP BY QA
您可以通过以下方式执行此操作:

SELECT date, COUNT(dom), QA, COUNT(NULLIF(errors, 'No')) FROM reports WHERE date="2010-03-22" GROUP BY QA

要解释其工作原理:
COUNT
返回非空值的数目。我们可以利用这一优势,将带有
'No'
的错误转换为
NULL
,这样
COUNT
就不会对它们进行计数。我们使用
NULLIF
函数来实现这一点,如果第一个参数和第二个参数相等,它将返回
NULL

No,字段本身不是NULL,但是当字段为“No”时,NULLIF(错误,“No”)将返回NULL。如果你愿意,我可以给你举个例子来演示它是如何工作的。 |2010-03-22|2|ab| |2010-03-22|2|if| |2010-03-22|2|he|
SELECT date, count(dom), count(errors), QA 
  FROM reports 
  WHERE errors="Yes" 
  GROUP BY QA
|2010-03-22|1|ab| |2010-03-22|1|if| |2010-03-22|1|he|
SELECT date, count(dom), QA, count(errors) 
  FROM reports 
  WHERE date="2010-03-22" 
    AND errors="Yes" 
  GROUP BY QA
|2010-03-22|2|ab|1| |2010-03-22|2|if|1| |2010-03-22|2|he|1|
.... date="2010-03-22" OR errors="Yes" GROUP BY QA
SELECT date, COUNT(dom), QA, COUNT(NULLIF(errors, 'No')) FROM reports WHERE date="2010-03-22" GROUP BY QA