目录
一、mysql版本
mysql版本:5.7.23
二、 问题描述
- 在查询时使用
group by
语句,出现错误代码:1055; - 执行发生错误语句:
三、解决方法
1.方法一(临时)
这种方法只能暂时解决1055错误,当MySQL服务进行重启后就会失效,又得重新设置;
- 查询出所有的
sql_mode
; -
select @@sql_mode
- 然后将查询结果中的
ONLY_FULL_GROUP_BY
移除后,再重新设置sql_model
; -
SET sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
- 在数据库操作完成就行了。
2.方法二(永久)
- 直接通过修改MySQL的my.ini文件(如果是Linux则在my.cnf中),这样就算MySQL服务重启后也不会失效;
- 在my.ini文件中添加:
-
# 设置sql_mode,关闭ONLY_FULL_GROUP_BY,避免使用group by函数导致1055错误 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
- 重启MySQL服务就OK,以管理员身份打开cmd窗口输入命令(不然可能会拒绝访问);
-
## 关闭mysql服务 net stop mysql ## 开启mysql服务 net start mysql