2012-04-24 55 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