我有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
答案 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