最近一个系统部署到另一台服务器的时候报错1 of SELECT list is not in GROUP BY clause and contains,查一下,是mysql5.7默认配置的问题。
聚合查询出现这样的报错是因为mysql设定的mode含有 ONLY_FULL_GROUP_BY
修改这个sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENG
only_full_group_by :使用这个就是使用和oracle一样的group 规则, select的列都要在group中,或者本身是聚合列(SUM,AVG,MAX,MIN) 才行,其实这个配置目前个人感觉和distinct差不多的,所以去掉就好,删除“only_full_group_by,”