2012-04-24 27 views
0

在我的模型中,我有以下查詢,其中數據庫中可用的最後一天的平均$ probe值爲小時。現在將變量添加到SQL查詢以獲得日復一日的結果

$connection=Yii::app()->db; 
$command=$connection->createCommand("SELECT AVG($probe), TIME FROM tbl_sensors GROUP BY DATE(TIME), HOUR(TIME) ORDER BY ID DESC LIMIT 0, 24"); 
$dataReader=$command->query(); 

我想修改此查詢得到的結果昨天,前天等

我首先想到的是添加控制器餵食變量修改限制參數。雖然以下內容:

SELECT AVG($probe), TIME FROM tbl_sensors GROUP BY DATE(TIME), HOUR(TIME) ORDER BY ID DESC LIMIT 24, 48 

返回48個值而不是24個。我不明白這是爲什麼?

任何指針歡迎

+0

什麼'極限24偏移24'? – ngen 2012-04-24 23:39:10

回答

1

LIMIT 24, 48並不意味着從24至48從24至裝置(24 + 48)。
如果我用另一種方式說,它從24開始,得到48條記錄。

LIMIT 24, 24 

http://dev.mysql.com/doc/refman/5.1/en/select.html

但我建議你使用WHERE

SELECT AVG($probe), TIME FROM tbl_sensors 
WHERE `TIME` BETWEEN ... AND ... 
GROUP BY DATE(TIME), HOUR(TIME) 
ORDER BY ID DESC LIMIT 0, 24 
+1

非常感謝我有missundertood LIMIT,我會使用它而不是BETWEEN,因爲我可以通過將變量增加24來獲取第二天的數據。 – SFcrawford 2012-04-25 09:12:33

相關問題