我的编程空间,编程开发者的网络收藏夹
学习永远不晚

解决MySql版本问题sql_mode=only_full_group_by

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

解决MySql版本问题sql_mode=only_full_group_by

MySql版本问题sql_mode=only_full_group_by

查看sql_mode

select @@sql_mode

查询出来的值为:

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

在查出结果中可以看到里面包含了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_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';

修改配置文件去除ONLY_FULL_GROUP_BY这种方式是我个人比较喜欢的.

打开配置文件mysql.cnf

sudo vi /etc/mysql/mysql.cnf

添加配置

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

sudo service mysql restart

进入mysql查看:

SELECT @@sql_mode;

Windows

在Windows修改mysql安装目录下面配置未见 my.ini,在文件中添加

[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

sql_mode=only_full_group_by以及多种解决方案

出错的sql情况

// mysql
SELECT
 *
FROM
 table t
GROUP BY
 t.mobile_no

提示出错:*** which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

原因:

mysql 5.7版本以上sql_mode新加入了only_full_group_by

解决方案1

修改sql_mode(容易被怼,因为大多都是在修改全局的sql_mode)

查看:

select @@sql_mode;

修改:

set @@sql_mode ='';

解决方案2

函数 any_value()

(使用方案一,原本应该是错的sql语句依然执行成功,但有时特殊情况,需要在select 下查询除group以外的值)

SELECT
 any_value(t.id),
 t.mobile_no
FROM
 table t
GROUP BY
 t.mobile_no

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

解决MySql版本问题sql_mode=only_full_group_by

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

下载Word文档

猜你喜欢

解决MySql版本问题sql_mode=only_full_group_by

目录mysql版本问题sql_mode=only_full_group_byWindowssql_mode=only_full_group_by以及多种解决方案出错的sql情况解决方案1解决方案2MySql版本问题sql_mode=only
2022-11-19

解决mysql @@sql_mode问题---only_full_group_by

目录运行环境系统运行出现的问题上度娘查询的结果提供两个解决方案方案一(只适合暂时解决性的,mysql 重启就一朝回到解放前了)方案二(修改mysql 中的配置文件,达到当重启mysql 回去制动加载配置文件的内容)总结运行环境linux
解决mysql @@sql_mode问题---only_full_group_by
2024-09-04

MYSQL5.7版本sql_mode=only_full_group_by问题

下载安装的是最新版的mysql5.7.x版本,默认是开启了 only_full_group_by 模式的,但开启这个模式后,原先的 group by 语句就报错,然后又把它移除了。一旦开启 only_full_group_by ,感觉,group by 将变成
2016-08-03

MySQL报错:sql_mode=only_full_group_by 4种解决方法含举例,轻松解决ONLY_FULL_GROUP_BY的报错问题

​ 作为初学者,我们在使用MySQL的时候总是会遇到各种各样的报错,让人头痛不已。其中有一种报错,sql_mode=only_full_group_by,十分常见,每次都是老长的一串出现,然后带走你所有的好心情。 ​​ 出现这样的报错,并不
2023-08-17

mysql ONLY_FULL_GROUP_BY设置sql_mode无效排查问题(windows)

目录mysql ONLY_FULL_GROUP_BY设置sql_mode无效排查1.查询SQLMODE2.临时修改sql-mode执行SQL3.永久修改sql-mode总结mysql ONLY_FULLjs_GROUP_BY设置sql_mo
mysql ONLY_FULL_GROUP_BY设置sql_mode无效排查问题(windows)
2024-09-07

MySQL出现this is incompatible with sql_mode=only_full_group_by错误的解决办法

目录这个就是错误截图出现原因: mysql的版本问题解决办法:两种第一种:修改MySQL的配置文件第二种方法:修改自己的sql总结这个就是错误截图出现原因: MySQL的版本问题MySQL 5.7.5以上版本,实现了对功能依赖的检测。如果
2023-02-17

mysql5.7版本因为sql_mode设置导致的问题以及解决

目录mysql5.7版本因为sql_mode设置导致的问题尝试解决方法一方法二关于sql_mode总结mysql5.7版本因为sql_mode设置导致的问题因为重新安装了环境,想把之前的数据库导入到新库里面,结果就报了如下错误: [E
mysql5.7版本因为sql_mode设置导致的问题以及解决
2024-09-07

MySQL出现this is incompatible with sql_mode=only_full_group_by错误的解决办法

mysql是高版本,当执行group by时,select的字段不属于group by的字段的话,sql语句就会报错,下面这篇文章主要给大家介绍了关于MySQL出现this is incompatible with sql_mode=only_full_group_by错误的解决办法,需要的朋友可以参考下
2023-02-17

MySQL报错:sql_mode=only_full_group_by的4种轻松解决方法(含举例)

目录前言​方法一:直接修改数据库配置方法二:修改数据库配置(永js久生效)方法三:使用 any_value() 或 group_concat()方法四:开动脑筋,修改代码总结前言​作为初学者,我们在使用mysql的时候总是会遇到各种各样的
2023-01-12

mysql 8.0 找不到my.ini配置文件以及报sql_mode=only_full_group_by解决方案

目录解决方法一(不推荐):临时sql_mode设置解决方法二:修改mysql的默认配置文件my.ini(永久配置,推荐)sql_mode=only_full_groandroidup_by问题产生原因:MySQL 5.7.5及以上功能依赖检
mysql 8.0 找不到my.ini配置文件以及报sql_mode=only_full_group_by解决方案
2024-08-18

Mysql5.7及以上版本 ONLY_FULL_GROUP_BY报错的解决方法

近期在开发过程中,因为项目开发环境连接的mysql数据库是阿里云的数据库,而阿里云的数据库版本是5.6的。而测试环境的mysql是自己安装的5.7。因此在开发过程中有小伙伴不注意写了有关group by的sql语句。在开发环境中运行是正常的
2022-05-24

C#爬虫-解决ChromeDriver 版本问题

因为下载的ChromeDriver版本与本地chrome浏览器的版本不一致导致的。因此,我们只要重新安装下载与本地chrome浏览器的版本一致的ChromeDriver将会解决该问题 下载的地址:http://chromedriver.st
C#爬虫版本2024-12-03

mysql 设置@@sql_mode 解决查询非分组里字段报错问题

1 查询sql_mode SELECT @@sql_mode; 2 把查询的值复制黏贴,去掉ONLY_FULL_GROUP_BY,重新设置值 SET @@sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO
2016-06-27

plsql版本异常问题怎么解决

PL/SQL版本异常通常是由数据库版本不兼容或PL/SQL代码中使用的语法在当前数据库版本中不支持引起的。以下是解决PL/SQL版本异常的一些常见方法:确保数据库版本与PL/SQL代码兼容:查看数据库版本和PL/SQL代码中使用的语法是否一
plsql版本异常问题怎么解决
2024-04-09

编程热搜

目录