【发布时间】:2014-05-19 13:19:33
【问题描述】:
我正在尝试在 SQL 查询中使用带有 HAVING 子句的聚合函数,使用 Codeigniter 的 Active Record。
function get_last_each()
{
$this->load->database();
$q = $this->db->from('points')->group_by('nodeid')->having('max(timestamp)', NULL)->get();
return $q->result_array();
}
它给了我一个数据库错误:
You have an error in your SQL syntax ...
SELECT * FROM (`points`) GROUP BY `nodeid` HAVING max(timestamp) =
如果我在第二个参数中使用max(timestamp),生成的查询将像= max(timestamp) 一样结束。还使用了第三个参数来禁止查询转义,没有成功。
查询在 mysql 客户端上运行良好:
mysql> select nodeid, timestamp from points group by nodeid having max(timestamp);
+-----------+---------------+
| nodeid | timestamp |
+-----------+---------------+
| 10EF7F | 1400497730790 |
| ADCFB2 | 1400501296786 |
...
如何通过 Codeigniter 使用功能来实现这一点?
【问题讨论】:
标签: mysql codeigniter activerecord aggregate-functions