gpt4 book ai didi

mysql - 带有聚合函数 MAX 的 Codeigniter Active Record HAVING 子句

转载 作者:行者123 更新时间:2023-11-29 12:58:00 25 4
gpt4 key购买 nike

我尝试使用 Codeigniter 的 Active Record 在 SQL 查询中使用带有 HAVING 子句的聚合函数。

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 使用函数来实现此目的?

最佳答案

你的having子句没有意义,having在你做一些比较时使用,比如=,>等。事件记录库就像明智地寻找一个值来比较,正如你所看到的

HAVING max(timestamp) = 

相同的查询可以重新构造为

select nodeid, max(timestamp) from points group by nodeid

http://dev.mysql.com/doc/refman/5.0/en/group-by-extensions.html

关于mysql - 带有聚合函数 MAX 的 Codeigniter Active Record HAVING 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23738865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com