Mysql在一个查询中计数2行

时间:2013-04-08 08:08:25

标签: php mysql

我正在计算今天使用

在mySQL中添加的行
mysql_query("SELECT COUNT(*) as total 
FROM track 
WHERE FROM_UNIXTIME(date,'%Y-%m-%d %h:%m:%s') > NOW() - INTERVAL 1 DAY");

这很有效。但是,我还想计算今天添加的行,其中包含一个名为“conv”的列中大于“0”的数字。

我试过了

mysql_query("SELECT conv,COUNT(*) as total
FROM track 
WHERE FROM_UNIXTIME(date,'%Y-%m-%d %h:%m:%s') > NOW() - INTERVAL 1 DAY");

但它没有计算在内。这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

这将计算行和conv大于零的行:

SELECT
  COUNT(*) AS total,
  COUNT(CASE WHEN conv THEN 1 END) AS total_conv_greater
FROM
  ...

如果conv> 0 CASE WHEN将返回非Null值,否则它将返回Null,而COUNT()将仅计算非空值。

答案 1 :(得分:0)

使用CASE语法可能是一个很好的帮助我认为

资源链接(source