首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么列值的和返回1?

为什么列值的和返回1?
EN

Stack Overflow用户
提问于 2019-05-26 23:47:26
回答 1查看 272关注 0票数 -1

我正在尝试获取本月用户访问的总和。这是我的代码(如果重要的话,我使用ORM RedBeanPHP):

$summ = R::exec('SELECT SUM(amount) FROM statistic WHERE type = "usuall_visit" AND month = :month',[':month'=>date('m')]);

并且$summ始终是1,即使它不是真的。._。我的表统计:https://drive.google.com/open?id=1MFt-FtEtqkk7QWQC2oAtMBA0WAgOIV4h

另外,当我尝试get values of row with max value of column时,如下所示:

$summ = R::exec('SELECT MAX(amount),value FROM statistic WHERE type = "usuall_visit" AND month = :month',[':month'=>date('m')]);

我遇到了错误:“语法错误或访问冲突: 1140在没有GROUP BY的聚合查询中,SELECT list的表达式#2包含非聚合列'somesite.statistic.value';这与sql_mode=only_full_group_by不兼容。”我说ok,并尝试按ID添加GROUP。但随后我只得到了第一行,但并不是只有实际的最大值._。我不知道我做错了什么

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-27 00:51:45

在RedBeanPHP中,对于SELECT查询,必须使用R::exec以外的其他函数。您得到的数字可能是select返回的行数,也可能是表示成功的简单值。

试一试

$summ = (int)R::getCell('SELECT SUM(amount) FROM statistic WHERE type = "usuall_visit" AND month = :month',[':month'=>date('m')]);

对于第二个问题,您可能希望稍微学习一下SQL,至少是最基础的。像这样的嵌套查询可能对您有用。

SELECT value FROM statistic WHERE amount = (SELECT MAX(amount) FROM statistic WHERE type = "usuall_visit" AND month = :month') LIMIT 1

您将需要再次将其与R::getCell一起使用(或者,如果您想检索多个列,则使用R::getRow )。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56315032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档