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

cakephp和mysql中字段的最小值和最大值,第1张

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

我正在尝试为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)为min_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”子句反正只会是一个场:)

希望能帮助到你.

总结

以上是内存溢出为你收集整理的cakephp和mysql中字段的最小值和最大值全部内容,希望文章能够帮你解决cakephp和mysql中字段的最小值和最大值所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1168217.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存