【问题标题】:Add variable to SQL query to get day by day results将变量添加到 SQL 查询以获取每日结果
【发布时间】:2012-04-24 23:34:01
【问题描述】:

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

欢迎指点

【问题讨论】:

  • limit 24 offset 24 呢?

标签: php sql yii


【解决方案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  

【讨论】:

  • 非常感谢我误解了 LIMIT,我将使用它而不是 BETWEEN,因为我可以将变量增加 24 以获取第二天的数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-16
  • 2017-12-04
  • 1970-01-01
  • 2018-03-08
  • 2018-07-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多