gpt4 book ai didi

mysql - cakephp和mysql中字段的最小值和最大值

转载 作者:可可西里 更新时间:2023-11-01 06:49:06 25 4
gpt4 key购买 nike

我正在尝试为 cakephp 和 mysql 站点构建搜索功能。选择产品价格或长度等不同参数会触发 ajax 调用,该调用会返回匹配结果的数量。我想用长度和价格的最小值和最大值扩展返回的结果。我试过这样做,http://bin.cakephp.org/view/1004813660 .使用前 4 个发现太耗时了。最后一个在本地运行,但出现错误;

1140 - 如果没有 GROUP BY 子句,则将 GROUP 列(MIN()、MAX(),,...)与没有 GROUP 列的混合是非法的`

远程,因为 ONLY_FULL_GROUP_BY 正在运行。

是否可以使用最后一个选项进行一些改进,或者我可以关闭 ONLY_FULL_GROUP_BY?

最佳答案

如果我理解得很好,你想在一个请求中获取

  • MIN(Yacht.price) 作为最低价格
  • MAX(Yacht.price) 作为 max_price
  • MIN(Yacht.long) 作为 min_length
  • MAX(Yacht.long) 作为 max_length

对吗?

为此,您不需要任何“Group By”子句。 MIN 和 MAX 函数已经是聚合函数。但没有什么能阻止您在单个请求中使用多个聚合函数。

你试过简单地这样做吗?

$stats = $this->Yacht->find(array(
'conditions' => $conditions,
'fields' => array(
'MIN(Yacht.price) as min_price',
'MAX(Yacht.price) as max_price',
'MIN(Yacht.long) as min_length',
'MAX(Yacht.long) as max_length'
)
)
);

顺便说一句,根据documentation ,您的原始代码中似乎有很多冗余。 "find('first', array(...))"本身确保你只得到一个结果,因此,不需要在请求中指定 "'limit' => 1"或 "order"子句,因为那里会反正只有一个字段:)

希望对您有所帮助。

关于mysql - cakephp和mysql中字段的最小值和最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11394147/

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