0

を使用して、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");

しかし、それはカウントされません。それを行う正しい方法は何ですか?

4

2 に答える 2

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() は null 以外の値のみをカウントします。

于 2013-04-08T08:10:46.970 に答える
0

構文の使用は、CASE私が思う大きな助けになる可能性があります

リソースリンク(ソース)

于 2013-04-08T08:09:50.780 に答える