同样的SQL,在不同的环境执行了,报错,如下图:
不是SQL语句的问题,是MySQL数据库本身的问题;原因是:sql_mode里面,group by 与 only_full_group_by 不兼容。
先查看报错的那个数据库的sql_mode(下图是修改后的,主要是让你们看sql):
解决:
修改my.cnf文件,在文件末尾加上一行:
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
重启mysql服务
再次查询sql_mode
新旧对比:
重新执行原来的SQL,成功!