mysql group by 语法_mysql5.7 group by语法 1055

先来看如下语句,查询默认存在的引擎表

c5e1915ab4e80736692212ad8303372d.png

之前使用的MySQL版本为5.7以下,根据support进行分组执行语句如下

fa905d044da234bed70eb1d35bb2ae54.png

添加跟分组support无关的字段engine

f007712ba31e6a6d88dce3ba516cdcc7.png

没有任何问题

现在使用的版本是5.7

dcde0317160e478c1a0dd8bf9e84e5f9.png

之后根据support进行分组之后

415a7d9bddc464ff32bebaa2197684ec.png

1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'information_schema.ENGINES.ENGINE' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

意思是

SELECT list不在GROUP BY子句中,并且包含非聚合列'information_schema. engine。在功能上不依赖于GROUP BY子句中的列;这与sql_mode=only_full_group_by不兼容

也就是select展示的列必须跟group by相关

这就跟oracle的group by语法一致了,不得不说,更合理些,当然了,一些查看语句应该就会复杂些

查看系统变量sql.mode

62f52053e03fc666b336510b0617c73d.png

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

修改方式,window编辑my.ini,Linux编辑my.cnf,将[mysqld]中的sql_mode的值删除ONLY_FULL_GROUP_BY,重启解决!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值