Mysql与条件的计数不同

时间:2014-09-08 10:06:32

标签: php mysql

记住this question

SELECT COUNT(DISTINCT productId) WHERE keyword='$keyword'

如何按条件计算不同的行

SELECT COUNT(DISTINCT productId -- THIS IS WHERE I NEED TO PUT CONDITION --) WHERE keyword='$keyword'

如果该行没有type <> 1

,我需要汇总不同的行

3 个答案:

答案 0 :(得分:2)

我不确定,但你在找这个:

SELECT COUNT(DISTINCT productId) from table_name WHERE keyword='$keyword' and type!=1

修改

SELECT COUNT(DISTINCT CASE WHEN type <> 1 
                           THEN productId 
                      ELSE NULL 
                      END
             ) 
FROM table_name
WHERE keyword='$keyword'

答案 1 :(得分:1)

假设修改WHERE子句时出现问题,您可以使用CASE operatorIF function

SELECT COUNT(DISTINCT CASE WHEN type <> 1 THEN productId ELSE NULL END) 
FROM <table>
WHERE keyword = '<keyword>'

答案 2 :(得分:0)

额外条件在WHERE子句中,而不在SELECT子句中。

SELECT COUNT(DISTINCT productId)
WHERE keyword = '$keyword'
AND type != 1