在MySql中执行查询时与sql mode = only_full_group_by相关的错误

时间:2019-04-16 10:04:38

标签: mysql

我已经升级了系统,并为正在处理的Web应用程序安装了带有PHP的MySql 5.7.9。我有一个动态创建的查询,当在旧版本的MySql中运行时,它运行良好。自升级到5.7以来,出现此错误: 这是给我错误的代码:

select *,SUM(payment) as payment,DATE_FORMAT(payment_date,'%b') as month 
from payment 
natural join branch
where YEAR(payment_date)='$year' and MONTH(payment_date)='$month' 
group by branch_id,MONTH(payment_date) 
order by  MONTH(payment_date)

我对此问题进行了一些谷歌搜索,但是我对only_full_group_by的理解不够,无法弄清楚我需要做什么来解决该查询。我可以仅关闭only_full_group_by选项,还是需要做其他事情?

让我知道是否需要更多信息。

1 个答案:

答案 0 :(得分:0)

您需要将选择列表的所有列分组放置

select branch_id,MONTH(payment_date),SUM(payment) as payment,DATE_FORMAT(payment_date,'%b') as month 
from payment 
natural join branch
where YEAR(payment_date)='$year' and MONTH(payment_date)='$month' 
group by branch_id,MONTH(payment_date),DATE_FORMAT(payment_date,'%b')
order by  MONTH(payment_date)