广告
返回顶部
首页 > 资讯 > 数据库 >MySQL查询出现1055错误的原因及解决方法
  • 878
分享到

MySQL查询出现1055错误的原因及解决方法

mysql查询报错1055mysql报错1055mysql错误1055 2023-05-19 11:05:53 878人浏览 八月长安
摘要

目录报错内容如下报错原因解决办法总结当sql语句查询报1055错误时的解决方法 报错内容如下 报错原因 1.SQL语句中使用了group by,并且不需要分组的字段没有加上any_value()函数 2.Mysql数据

sql语句查询报1055错误时的解决方法

报错内容如下

请添加图片描述

报错原因

1.SQL语句中使用了group by,并且不需要分组的字段没有加上any_value()函数

2.Mysql数据库版本是大于5.7,报错信息中最后有一句sql_mode=ONLY_FULL_GROUP_BY,是因为mysql数据库的配置中sql_mode包含ONLY_FULL_GROUP_BY,导致使用group by会报错

ONLY_FULL_GROUP_BY 含义:对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中。在严格模式下,不要让GROUP BY部分中的查询指向未选择的列,否则报错。

解决办法

解决办法共计3种,两种需要改配置,一种不需要

1.不修改任何配置文件,但给不需要分组的字段上加上any_value()函数

SELECT any_value(id),value FROM table_name group by value;

这种方法不需要改配置,但是每条使用group by的SQL语句都要加上any_value()函数

2.临时更改配置,下次重启电脑或者MySQL服务时会失效

首先在数据库中查询下列代码

select @@global.sql_mode

得到如下结果:

请添加图片描述

发现里面有ONLY_FULL_GROUP_BY

在查询中继续执行下列代码,其中等号后面的就是刚才查到的代码去掉 ONLY_FULL_GROUP_BY 的部分

set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISioN_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

这时再重新测试之前报错的SQL语句,应该会可用了

如果不可用,再执行下列两条语句:

select @@sql_mode

set sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

就可以了

3.永久更改配置,下次重启电脑或者MySQL服务时不会失效

第一步,先运行下列语句

select @@sql_mode

第二步,打开MySQL的配置文件(window的时my.ini,一般会在安装目录的根目录,linux是my.cnf,一般会放

在/etc/my.cnf,/etc/mysql/my.cnf。如果找不到,可以用find命令查找)

第三步,在配置文件中找到 [mysqld],在他下面填入

[mysqld]
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

停止mysqlsystemctl stop mysql或者net stop mysql

重启mysqlsystemctl restart mysql或者net start mysql

window用户可以在服务中重启MySQL:win+R,输入services.msc,点确定找到mysql服务,重启即可解决问题

总结

到此这篇关于MySQL查询出现1055错误的原因及解决方法的文章就介绍到这了,更多相关MySQL查询报错1055内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL查询出现1055错误的原因及解决方法

本文链接: https://www.lsjlt.com/news/213066.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作