mysql isn't in GROUP BY

今天安装新环境使用group by 语句查询报错isn't in GROUP BY!如图:

微信截图_20190723102510.png

以前时候也没有报啊~ 想到一定是新环境mysql版本过高了配置文件不一样了! 

isn't in GROUP BY报错翻译:

image.png

意思要分组的列不在select的字段中(*这里重点 group by *号不代表所有字段!)

解决方案:

找到你my.ini就是你的mysql中的配置文件(不知道在哪里可以全电脑所有win就搜索my.ini   linux就搜索my.cnf)

找到你的这么一句话:(也许不太一样,但是就是sql_model的这一句)

sql_mode="STRICT_TRANS_TABLES,ONLY_FULL_GROUP_BY,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

删除上句中的

ONLY_FULL_GROUP_BY,

删除后重启就可以了! 试试可以了吗?


ONLY_FULL_GROUP_BY意思:对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的

例如:

取消配置的情况下
select count(id) from table_demo order by rank -- ok
select count(id) from table_demo group by rank -- ok
select count(rank),id from table_demo group by rank -- ok
select count(rank),id from table_demo group by id -- ok
配置的情况下
select count(id) from table_demo order by rank -- error
select count(id) from table_demo group by rank -- ok
select count(rank),id from table_demo group by rank -- error
select count(rank),id from table_demo group by id -- ok

意思你select 和from中间的字段必须要有group by 用到的字段

 isn't in GROUP BY的报错的问题就解决了 你学会了吗?

喜欢(0)

评论 抢沙发

表情