今天安装新环境使用group by 语句查询报错isn't in GROUP BY!如图:
以前时候也没有报啊~ 想到一定是新环境mysql版本过高了配置文件不一样了!
isn't in GROUP BY报错翻译:
意思要分组的列不在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的报错的问题就解决了 你学会了吗?