在我的模型中,我有以下查询,我们在数据库中可用的最后一天平均$ 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个。我不明白为什么会这样?
欢迎任何指示
答案 0 :(得分: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