解决MySql版本问题sql_mode=only_full_group_by

作者:XiaoMaPro 时间:2024-01-14 00:23:17 

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

来源:https://blog.csdn.net/u011893509/article/details/87896806

标签:MySql,sql,mode,only,full,group,by
0
投稿

猜你喜欢

  • 浅谈JavaScript窗体Window.ShowModalDialog使用

    2024-04-23 09:05:39
  • 基于Python记录一场2023的烟花

    2022-01-08 19:57:07
  • ASP环境下邮件列表功能的实现

    2007-10-03 14:25:00
  • 对python同一个文件夹里面不同.py文件的交叉引用方法详解

    2023-12-24 00:54:27
  • 浅谈如何使用python抓取网页中的动态数据实现

    2021-10-19 08:47:18
  • python使用正则筛选信用卡

    2021-03-10 14:06:47
  • Django查询优化及ajax编码格式原理解析

    2021-04-26 02:04:27
  • PyTorch一小时掌握之迁移学习篇

    2021-12-13 12:37:11
  • Flask中Cookie和Session理解与作用介绍

    2022-05-03 21:50:35
  • 浅析javascript操作 cookie对象

    2024-04-18 10:49:23
  • Django 实现将图片转为Base64,然后使用json传输

    2023-06-14 06:42:28
  • 用Python逐行分析文件方法

    2022-07-10 10:17:49
  • 解决MySQL安装重装时出现could not start the service mysql error:0问题的方法

    2024-01-23 01:17:00
  • python+flask编写接口实例详解

    2022-10-09 16:09:41
  • mysql 数据库安装经验问题汇总

    2024-01-28 11:55:29
  • 在Pytorch中使用Mask R-CNN进行实例分割操作

    2023-05-18 21:41:22
  • Python文件的操作处理详解

    2022-07-07 06:44:16
  • python代码有一行标黄问题的解决方案

    2021-07-16 22:29:57
  • python面向对象基础之常用魔术方法

    2021-08-20 20:08:59
  • python3 使用openpyxl将mysql数据写入xlsx的操作

    2024-01-25 14:58:23
  • asp之家 网络编程 m.aspxhome.com