将变量添加到SQL查询以获取日常结果

时间:2012-04-24 23:34:01

标签: php sql yii

在我的模型中,我有以下查询,我们在数据库中可用的最后一天平均$ 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个。我不明白为什么会这样?

欢迎任何指示

1 个答案:

答案 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