mysql5.7
版本中,如果DISTINCT
和order by
一起使用将会报3065错误
,sql语句无法执行。这是由于5.7版本语法比之前版本语法要求更加严格
导致的。
解决方案:
1、vim /etc/my.cnf
2、如果没有sql_mode配置,则添加
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
3、如果已有sql_mode配置,务必删除ONLY_FULL_GROUP_BY这一项
4、我的sql_mode设置:
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
5、重启mysql服务:
service mysqld restart