高版本Mysql使用group by分组报错的解决方案

 更新时间:2023年03月04日 15:05:33   作者:jiajia佳佳  
GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组,下面这篇文章主要给大家介绍了关于高版本Mysql使用group by分组报错的解决方案,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

Mysql5.7版本以上对group by 分组有了新需求,要求group by 后的字段要与select后查询的字段一致,否则就会报错,报错信息如下:

#1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘id’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

通过报错分析是由于group by 后的分组字段与查询字段不一致导致。

解决方案:

方法一:补全group by 后字段(不推荐这种方法,有时要查询的字段很多而且字段的内容不能保证不重复,如果全部补齐会造成查询数据丢失)。

方法二:修改配置

1)使用navicat管理工具连接mysql数据库

打开navicat管理工具,按F6打开命令界面,依次输入以下语句

select @@global.sql_mode;
set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';`
set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

截图如下:

再重新执行就会发现不再报错。

2)使用cmd命令行更改

按win+r打开运行界面,输入cmd打开命令行界面

打开后切换目录到mysql安装包的bin目录下,具体操作如下图(根据自己路径切换)

连接数据库,输入mysql -u root -p,按回车再输入数据库密码

连接成功后再依次输入以下语句

select @@global.sql_mode;
set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

截图如下:

至此配置结束

总结

到此这篇关于高版本Mysql使用group by分组报错的解决方案的文章就介绍到这了,更多相关Mysql使用group by分组报错内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 手把手教你MySQL运算符

    手把手教你MySQL运算符

    运算符是告诉MySQL执行特定算数或逻辑操作的符号,下面这篇文章主要给大家介绍了关于MySQL运算符的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-03-03
  • mysql最新版8.0.17解压版安装教程

    mysql最新版8.0.17解压版安装教程

    这篇文章主要为大家详细介绍了最新版mysql 8.0.17 解压版安装教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • MySQL 自动清理binlog日志的方法

    MySQL 自动清理binlog日志的方法

    这篇文章主要介绍了MySQL 自动清理binlog日志的方法,需要的朋友可以参考下
    2016-10-10
  • VS2019连接MySQL数据库的过程及常见问题总结

    VS2019连接MySQL数据库的过程及常见问题总结

    今天想使用VS2019可以配合MySQL一起使用,在配置过程中出现一些错误,下面通过本文给大家分享VS2019连接MySQL数据库的过程及常见问题总结,感兴趣的朋友跟随小编一起看看吧
    2021-11-11
  • MySQL中Like模糊查询速度太慢该如何进行优化

    MySQL中Like模糊查询速度太慢该如何进行优化

    在业务场景中经常会用到like模糊查询,但是大家都知道,like是用不到索引的,所以当数据量非常大时,速度会非常慢,这篇文章主要给大家介绍了关于MySQL中Like模糊查询速度太慢该如何进行优化的相关资料,需要的朋友可以参考下
    2021-12-12
  • MySQL replace函数替换字符串语句的用法

    MySQL replace函数替换字符串语句的用法

    MySQL replace函数我们经常用到,下面就为您详细介绍MySQL replace函数的用法,希望对您学习MySQL replace函数方面能有所启迪。
    2010-12-12
  • 一文详解MySQL不同隔离级别都使用什么锁

    一文详解MySQL不同隔离级别都使用什么锁

    这篇文章主要为大家详细介绍了在MySQL中不同隔离级别都会使用什么锁,文中的示例代码讲解详细,对我们学习MySQL有一定帮助,需要的可以参考一下
    2022-09-09
  • mysql 数据类型TIMESTAMP

    mysql 数据类型TIMESTAMP

    timestamp数据类型是一个比较特殊的数据类型,他可以自动在你不使用程序更新情况下只要你更新了记录timestamp会自动更新时间
    2014-07-07
  • MySQL嵌套查询实例详解

    MySQL嵌套查询实例详解

    这篇文章主要介绍了MySQL嵌套查询的使用技巧,结合实例形式较为详细的分析了MySQL嵌套查询参数设置、使用方法与注意事项,需要的朋友可以参考下
    2015-12-12
  • MyEclipse连接MySQL数据库图文教程

    MyEclipse连接MySQL数据库图文教程

    这篇文章主要为大家详细介绍了MyEclipse连接MySQL数据库图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10

最新评论