0

在我的模型中,我有以下查询,它在数据库中可用的最后一天平均 $probe 值小时。

$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();

现在我想修改这个查询以获得昨天、前天等的结果。

我的第一个想法是添加一个由控制器修改 LIMIT 参数提供的变量。虽然如下:

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

返回 48 个值而不是 24 个。我不明白这是为什么?

欢迎任何指点

4

1 回答 1

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  
于 2012-04-24T23:47:13.247 回答