iis服务器助手广告
返回顶部
首页 > 资讯 > 数据库 >mysql:关闭sql_mode=ONLY_FULL_GROUP_BY模式
  • 503
分享到

mysql:关闭sql_mode=ONLY_FULL_GROUP_BY模式

mysqlsqljava 2023-08-17 18:08:33 503人浏览 独家记忆
摘要

JAVA后台报错信息: Caused by: java.sql.SQLSyntaxErrorException: Expression #16 of SELECT list is not in GROUP BY clause and

JAVA后台报错信息:

Caused by: java.sql.SQLSyntaxErrorException: Expression #16 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'Mysql_data.s.k_persion' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with

原因: mysql默认开启only_full_group_by模式,当碰到不符合格式的group by 语句就会报错;(sql_mode=only_full_group_by 模式 要求 select 多少个字段对象,则group by 后面就需要带上多少个字段对象;)
例如sql语句如下:

-- 查询人员信息,按部门分组,显示姓名和部门SELECT S.PSL_NAME,S.DEPARTMENT  FROM k_persion S GROUP BY DEPARTMENT

运行时就会报错:

 Caused by: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column  'mysql_data.k_persion .PSL_NAME' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by  

其大体的意思就是这个sql语句不符合 mysql_data 数据库的group by 格式要求(因为这个数据sql_mode=only_full_group_by),但我们把当sql改成如下格式后就可以运行了:

-- 查询人员信息,按部门分组,显示姓名和部门SELECT S.PSL_NAME,S.DEPARTMENT  FROM k_persion S GROUP BY DEPARTMENT,PSL_NAME

这样的格式是不报错了,但是查询的目标效果却错了;因此我们需要把sql_mode 的 only_full_group_by模式关掉。

解决方式:
1、临时关闭(当mysql重启后失效):
使用sql语句修改的方式修改sql_mode 的Session级和GLOBAL级信息
查看sql_mode 的信息

-- 查看数据库版本和 Session级信息SELECT VERSION(),@@sql_mode;-- 查看数据库版本和 GLOBAL级信息SELECT VERSION(),@@GLOBAL.sql_mode;

我们发现在对应的sql_mode列中都含有 ONLY_FULL_GROUP_BY 参数,因此我们需要把这个属性去掉,打开数据库查询界面,运行如下语句;

 -- 关闭 session级SET SESSION sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));-- 关闭 GLOBAL级SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

再查询sql_mode后发现ONLY_FULL_GROUP_BY 已经没有了,然后再运行我们的sql语句就不报错了。

2、永久关闭:
永久关闭ONLY_FULL_GROUP_BY,需要去修改mysql服务的配置文件my.ini 文件,本人是Win10服务,若是linux服务环境,应该是 XX/etc/my.cnf 的文件。(若想永久生效,修改配置文件是永恒不变的真理…)
找到mysql的my.ini 文件(在mysql服务安装的路径下找),打开文件在[mysqld] 中添加如下语句:

sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'

如下图:
在这里插入图片描述保存后重启mysql服务即可。

若不确定自己的sql_mode=‘xxxx’ 到底要有哪些参数,可以通过 SELECT @@sql_mode; 查询出自己数据库现有的参数,然后ONLY_FULL_GROUP_BY对象去掉即可。

来源地址:https://blog.csdn.net/h123hlll/article/details/130386184

您可能感兴趣的文档:

--结束END--

本文标题: mysql:关闭sql_mode=ONLY_FULL_GROUP_BY模式

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

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

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

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

下载Word文档
猜你喜欢
  • mysql:关闭sql_mode=ONLY_FULL_GROUP_BY模式
    JAVA后台报错信息: Caused by: java.sql.SQLSyntaxErrorException: Expression #16 of SELECT list is not in GROUP BY clause and...
    99+
    2023-08-17
    mysql sql java
  • 解决MySql版本问题sql_mode=only_full_group_by
    目录mysql版本问题sql_mode=only_full_group_byWindowssql_mode=only_full_group_by以及多种解决方案出错的sql情况解决方案1解决方案2MySql版本问题sql...
    99+
    2022-11-19
    MySql版本 MySqlsql_mode MySqlonly_full_group_by
  • MySQL错误提示:sql_mode=only_full_group_by完美解决方案
    目录前言1.查询数据库版本:2.查看sql_mode的语句:3.临时解决方案:4.永久解决方案:5重启数据库总结前言 mysql是高版本,当执行group by时,select的字段不属于group by的字段的话,sq...
    99+
    2024-04-02
  • mysql开启/关闭安全模式
    在使用mysql执行update的时候,如果不是用主键当where语句,会报如下错误,使用主键用于where语句中正常。 异常内容:Error Code: 1175. You are using safe update...
    99+
    2023-08-31
    mysql 数据库 sql
  • MySQL报错:sql_mode=only_full_group_by 4种解决方法含举例,轻松解决ONLY_FULL_GROUP_BY的报错问题
    ​ 作为初学者,我们在使用MySQL的时候总是会遇到各种各样的报错,让人头痛不已。其中有一种报错,sql_mode=only_full_group_by,十分常见,每次都是老长的一串出现,然后带走你所有的好心情。 ​​ 出现这样的报错,并不...
    99+
    2023-08-17
    mysql sql 数据库
  • MySQL出现this is incompatible with sql_mode=only_full_group_by错误的解决办法
    目录这个就是错误截图出现原因: mysql的版本问题解决办法:两种第一种:修改MySQL的配置文件第二种方法:修改自己的sql总结这个就是错误截图 出现原因: MySQL的版本问题 MySQL 5.7.5以上版本,实现...
    99+
    2023-02-17
    this is incompatible with mysql错误大全 sql_mode=only_full_group_by 报错
  • MySQL出现this is incompatible with sql_mode=only_full_group_by错误的解决办法
    目录这个就是错误截图出现原因: MySQL的版本问题解决办法:两种第一种:修改MySQL的配置文件第二种方法:修改自己的sql总结这个就是错误截图 出现原因: MySQL的版本问题...
    99+
    2023-02-17
    this is incompatible with mysql错误大全 sql_mode=only_full_group_by 报错
  • sql_mode的模式有哪些
    这篇文章主要介绍“sql_mode的模式有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“sql_mode的模式有哪些”文章能帮助大家解决问题。 ...
    99+
    2023-03-20
    sql_mode
  • 如何关闭mysql的严格模式
    本篇内容介绍了“如何关闭mysql的严格模式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • 如何在mysql中实现一个sql_mode模式
    这篇文章给大家介绍如何在mysql中实现一个sql_mode模式,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。mysql数据库的中有一个环境变量sql_mode,定义了mysql应该支...
    99+
    2024-04-02
  • MySQL报错:sql_mode=only_full_group_by的4种轻松解决方法(含举例)
    目录前言​方法一:直接修改数据库配置方法二:修改数据库配置(永久生效)方法三:使用 any_value() 或 group_concat()方法四:开动脑筋,修改代码总结前言​ 作为初学者,我们在使用mysql...
    99+
    2023-01-12
    sql_mode=only_full_group_by 报错 only-full-group-by mysql sql_mode=only
  • php如何关闭debug模式
    这篇“php如何关闭debug模式”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“php如何关闭debug模式”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所收获,下面让我们...
    99+
    2023-06-06
  • thinkphp3.2如何关闭调试模式
    这篇“thinkphp3.2如何关闭调试模式”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“thinkphp3.2如何关闭调试...
    99+
    2023-06-30
  • win10平板模式如何关闭
    这篇“win10平板模式如何关闭”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“win10平板模式如何关闭”文章吧。win10...
    99+
    2023-07-01
  • win10夜间模式如何关闭
    这篇“win10夜间模式如何关闭”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“win10夜间模式如何关闭”文章吧。 打开操作...
    99+
    2023-07-02
  • php.ini如何关闭安全模式
    本篇内容介绍了“php.ini如何关闭安全模式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php.ini关闭安全模式的方法:首先找到并打开...
    99+
    2023-06-20
  • win10如何关闭测试模式
    要关闭Windows 10的测试模式,请按照以下步骤操作:1. 打开“设置”(可以通过开始菜单中的齿轮图标访问)。2. 在“设置”窗...
    99+
    2023-09-02
    win10
  • access禁用模式如何关闭
    要关闭Access禁用模式,可以按照以下步骤操作: 打开Access数据库文件。 点击“文件”选项卡。 选择“选项”。 在“Acc...
    99+
    2024-03-15
    access
  • excel护眼模式如何关闭
    要关闭Excel的护眼模式,您可以按照以下步骤进行操作:1. 打开Excel应用程序。2. 点击"文件"选项卡,然后选择"选项"。3...
    99+
    2023-09-12
    excel
  • Win10怎么关闭护眼模式
    这篇文章主要讲解了“Win10怎么关闭护眼模式”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Win10怎么关闭护眼模式”吧!具体步骤:进入操作系统,同时按 下Win+R 组合键,打开“运行”...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作