转: https://blog.csdn.net/AirJoker/article/details/83515437
emmm…自己试的…
选择报错的数据库(必须设置自己选择的数据库)新建查询;
查询语句:select @@sql_mode; // 查询sql_mode
查询结果:
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
然后设置将 ONLY_FULL_GROUP_BY 删掉:
set sql_mode=(select replace(@@sql_mode,‘ONLY_FULL_GROUP_BY’,’’));
如果不小心误删的话:
set sql_mode=(select replace(@@sql_mode,‘ONLY_FULL_GROUP_BY’,‘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’));
然后就没有 ONLY_FULL_GROUP_BY 的错了。
问题: 这个并不是一劳永逸的方法,当你重启数据库的时候会重置(需要重新执行)