关于mysql高版本使用groupby导致的报错

在开发时,遇到mysql版本在5.7.X及以上版本时使用group by 语句会报以下的错误

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'business_type' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_byat sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

这是因为mysql 5.7.X版本以上默认的sql配置是:sql_mode=“ONLY_FULL_GROUP_BY”,这个配置严格执行了"SQL92标准"。

解决方法:

方法一:

在Navicat Premium 16中执行以下语句即可,只有短时间内生效,例如电脑重启有可能失效。

set @@global.sql_mode='NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

方法二:

首先检查

永久更改方法如下:

windows

找到mysql的安装目录中的my.ini文件对其进行修改

sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"

添加完后需重启数据库

Linux
文件地址一般在:/etc/my.cnf,/etc/mysql/my.cnf

有的my.cnf没有sql_mode这项配置就自行添加这行配置上去,有的话把原来的更改为以下即可:

sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"

添加完后需重启数据库
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/257375.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码混淆技术探究与工具选择

引言 在软件开发中,保护程序代码的安全性是至关重要的一环。代码混淆(Obfuscated code)作为一种常见的保护手段,通过将代码转换成难以理解的形式来提升应用被逆向破解的难度。本文将介绍代码混淆的概念、方法以及常见的代码混淆工…

[Linux] Bash脚本多函数应该如何执行?使用eval提高脚本编写效率!

在工作过程中经常会编写一些测试脚本,有些脚本里有多个函数,要通过用户输入执行对应的函数,如这样: 这也太麻烦了吧 执行如下: 这样在函数多的情况下需要写很多判断,效率低下。 我们可以使用eval命令来进行…

『PyTorch学习笔记』如何快速下载huggingface模型/数据—全方法总结

如何快速下载huggingface模型/数据—全方法总结 文章目录 一. 如何快速下载huggingface大模型1.1. IDM(Windows)下载安装连接1.2. 推荐 huggingface 镜像站1.3. 管理huggingface_hub cache-system(缓存系统) 二. 参考文献 一. 如何快速下载huggingface大模型 推荐 huggingface…

MySQL-宋红康-(课P12-P13)-SQL分类和SQL的语言规则规范

b站课程: 12-SQL概述与SQL分类_哔哩哔哩_bilibili 🐶7. SQL SQL:Structure Query Language结构化查询语言,它是使用关系模型的数据库应用语言,由IBM上世纪70年代开发出来。后由美国国家标准局(ANSI&#…

java多线程(二)线程池

目录 java线程池 线程池应用场景: 如何创建线程池: 有什么区别: 不同线程池对应的应用场景 案例 输出结果 java线程池 Java线程池是一种预先创建一定数量的线程,并将任务提交给这些线程执行的机制。线程池可以避免频繁创建…

C++新经典模板与泛型编程:将trait类模板用作模板参数

将trait类模板用作模板参数 template<typename T> struct SumFixedTraits;template<> struct SumFixedTraits<char> {using sumT int;static sumT initValue() {return 0;} };template<> struct SumFixedTraits<int> {using sumT __int64;sta…

CCF刷题记录 -- 202305-2:矩阵运算 --python解法

2023.12.7 主要算法 矩阵置换矩阵相乘 满分注意点 运算顺序&#xff0c;利用了矩阵运算法则中的&#xff08;A*B&#xff09;*c A*(B*C) # 矩阵置换 def zhihuan(a):b[]for i in range(d):c []for j in range(n):c.append(a[j][i])b.append(c)return b# 矩阵相乘 def ju_zh…

高级多层次搭建企业级大数据项目, 成就全能型大数据开发实战经验思想

随着大数据技术的快速发展&#xff0c;企业越来越重视构建高效、可靠的大数据项目。本文将重点介绍如何高级多层次地搭建企业级大数据项目&#xff0c;并分享成为全能型大数据开发者的实战经验与思想。通过学习和应用这些技术&#xff0c;我们可以提升大数据项目的质量和效果。…

探索Vue小程序框架的底层原理

最近晚上有时间复盘之前研究小程序框架的相关内容&#xff0c;总结文章记录一下。 本篇文章主要介绍百度19年开源的Mars小程序开发框架&#xff0c;和Taro、mpvue、uniapp类似&#xff0c;都是编译型小程序框架&#xff0c;都是通过将 Vue 或 React 源码直接编译为小程序源码&a…

数据库字段名和sql关键字冲突报错解决方法

1、修改实体类字段映射。注解里加反引号 2、sql字段上加反引号 3、问题解决

MySQL_4.mysql数据库的安装(超详细——保姆级)

1.mysql 单实例、多实例安装 端口&#xff1a;&#xff08;3306、3307&#xff09; 环境&#xff1a;win11/win10 , mysql_5.7.30 2.安装Windows VC 、NET4.0 等系统组件 下载链接百度网盘: 链接&#xff1a;https://pan.baidu.com/s/1goIbaJ6YC-DzmBbVDyOolg 提取码&…

IPTABLES(一)

文章目录 1. iptables基本介绍1.1 什么是防火墙1.2 防火墙种类1.3 iptables介绍1.4 包过滤防火墙1.5 包过滤防火墙如何实现 2. iptables链的概念2.1 什么是链2.2 iptables有哪些链 3. iptables表的概念3.1 什么是表3.2 表的功能3.3 表与链的关系 4. iptables规则管理4.1 什么是…