计算两列中所有出现的特定值

时间:2015-03-11 02:47:25

标签: mysql sql mysqli

我有mysql表有2 columns (col1,col2)我想查询以获取value = 4

的单元格数

我使用Select COUNT(*) from tbl where col1=4 OR col2=4

但它给我1,因为它们在同一行应该是2因为(4)发现2次

    col1       col2
-------------  -----------
5                 1
7                 3
4                 4
10                8
8                 21
2                 22

4 个答案:

答案 0 :(得分:0)

您可以添加两个select语句的结果。试试这个

SELECT
(SELECT COUNT(*) FROM tbl WHERE  col1 = 4 )+
(SELECT COUNT(*) from tbl WHERE  col2 = 4)
AS SumCount
  

结果将是:2

答案 1 :(得分:0)

我认为这会正确计算细胞数。包括将col1和col2计数在同一行中为4。

SELECT COUNT(IF(col1=4,N,NULL)) + COUNT(IF(col2=4,N,NULL)) cellcnt FROM tbl

答案 2 :(得分:0)

使用UNION ALL将两列转换为单列,然后查找计数。试试这个。

select count(1) from
(
select col1 as col from yourtable
union all
select col2 from yourtable
)as a
where col = 4

答案 3 :(得分:-1)

您可以使用以下查询来执行您想要的操作

Select sum(col1=4)+sum(col2=4) from tbl where col1=4 OR col2=4