
这是因为MySQL5.7.5及其以上的版本中,默认开启了ONLY_FULL_GROUP_BY,需满足以下两点才能正常运行:
1. order by后面的列必须是在select后面存在的
2. select、having或order by后面存在的非聚合列必须全部在group by中存在
解决方法:
1.首先查看当前数据库使用的sql_mode:
select @@sql_mode;

2.在个人得my.ini配置文件中修改,在[mysqld]后面添加删掉only_full_group_by后的这段sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'


3.重启后使用select @@sql_mode; 可见only_full_group_by约束已被删除。