0

データベースに単純なログ テーブルがあります。ページにアクセスするたびに、行が挿入されます。ここで、今日と昨日の特定の列を合計したいと思います。

次のクエリを試しました。

SELECT Sum(CASE 
             WHEN `time` > 1364767200 THEN `sqlquerycount` 
           end) AS `today`, 
       Sum(CASE 
             WHEN `time` BETWEEN 1364684400 AND 1364767200 THEN `sqlquerycount` 
           end) AS `yesterday` 
FROM   `log` 

これは、次の PHP スクリプトの結果です。

$sql = "SELECT 
        SUM(CASE WHEN `time` > ".strtotime("today")." THEN `sqlQueryCount` END) AS `today`,
        SUM(CASE WHEN `time` BETWEEN ".strtotime("yesterday")." AND ".strtotime("today")." THEN `sqlQueryCount` END) AS `yesterday`
    FROM `log`";

「yesterday」は NULL のままですが、このクエリに問題はありません。何か案が?

4

1 に答える 1

2

私は賭けるだろう

$sql = "SELECT 
        SUM(CASE WHEN `time` > ".strtotime("today")." THEN `sqlQueryCount` ELSE 0 END) AS `today`,
        SUM(CASE WHEN `time` BETWEEN ".strtotime("yesterday")." AND ".strtotime("today")." THEN `sqlQueryCount` ELSE 0 END) AS `yesterday`
    FROM `log`";

...提供されるsqlQueryCountのは、合計を実行する列です!

于 2013-04-01T20:30:05.443 に答える