mysql使用group by不规范,导致SELECT list is not in GROUP BY clause and contains nonaggregated column

博客讲述了在使用MySQL进行查询时遇到的GROUP BY不规范问题,即SELECT列表中包含未在GROUP BY子句中指定的非聚合列,导致错误1055。该问题源于MySQL 5.7及以上版本开启的'only_full_group_by' SQL模式。解决方法包括临时关闭该模式或修改配置文件。作者最终选择了遵循规范的查询方式,不再使用GROUP BY。
摘要由CSDN通过智能技术生成
select *,count(distinct fittings_list_code) from fittings_list
where approval_status = '0'
group by fittings_list_code

数据库查询操作大致如上(别问我为啥能写出来这么逗的数据库查询语句,反正就想对fittings_list_code这个字段去下重,用distinct+group by 主要是因为这个表字段有点多,当时想着把所有字段都差出来,免得后面要求改动麻烦,然后就用里这种形式偷懒,但是这是不规范的group by用法,所以想偷懒出了问题我不负责)

结果就是本地服务器运行是运行正常,然后上远程服务器的时候,就报了ERROR 1055 (42000): Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'fittings_list.fittings_list_code' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by。

查了下导致这个问题的原因,据说是mysql5.7以后自动开启了 only_full_group_by服务,只要关了就行。

so,接下来就是解决方法了:

首先是一次性方案

SELECT @@GLOBAL.sql_mode;
或用
show v
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值