MYSQL数据库报错 1055

MYSQL数据库报错 1055
今天在做毕业设计,当点开要查看的视图的时候,爆出了1055的错,该错误如下:
在这里插入图片描述

错误原因:在MySQL5.7之后,sql_mode中默认存在ONLY_FULL_GROUP_BY,SQL语句未通过ONLY_FULL_GROUP_BY语义检查所以报错。

ONLY_FULL_GROUP_BY:ONLY_FULL_GROUP_BY要求select语句中查询出来的列必须是明确的(其他语句也是一样)。

以SQL语句select columes from table group by list为例:columns必须是聚集函数或者在group by后的表达式list中,并且list中必须包含主键,否则也会报错。

insert、update、delete语句都会报错(但不影响SQL语句的执行),因为这三种语句执行之前也会执行查询操作。

以主键为id的表为例:

SELECT count(1) FROM customer GROUP BY name;该SQL执行成功,因为count是聚集函数;

SELECT * FROM customer GROUP BY name;该SQL执行失败,因为*中包含主键id,而group by后的表达式中并没有包含id

SELECT name FROM customer GROUP BY name;该SQL执行成功,因为name包含在group by后的表达式中

SELECT name, contact FROM customer GROUP BY name;该SQL执行失败,因为contact没有包含在group by后的表达式中

解决办法

这里只介绍永久解决的办法,很简单,跟着我做肯定可以成功
首先新建一个查询。输入:

SELECT @@sql_mode

然后会出现
在这里插入图片描述
复制蓝色的,复制起来,打开mysql数据库的安装路径的my.imi文件,用文本打开即可
(MySQL配置文件所在位置:安装版可通过windows服务所对应mysql启动项,查看其对应属性->可执行文件路径,获取my.ini路径。免安装版一般在其根目录下。(默认是my-default.ini,必须将名字改为my.ini才能生效))
然后查看是否有sql_mode,如果没有直接添加即可,我这里是添加在mysqld下面,然后把刚刚蓝色的粘贴下来即可
在这里插入图片描述
然后win+R,输入services.msc
在这里插入图片描述
点确定会进去找到mysql服务
在这里插入图片描述
右键重启即可解决问题!!!!

  • 12
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值