首页 > 数据库 >MySQL-sql_mode=only_full_group_by解决方式

MySQL-sql_mode=only_full_group_by解决方式

时间:2022-11-11 15:35:37浏览次数:67  
标签:full group NO MySQL ZERO mode sql

报错问题:

SQLSyntaxErrorException: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'selad.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by"

原因:

在MySQL 5.7后MySQL默认开启了SQL_MODE严格模式,对数据进行严格校验。
会报sql_mode=only_full_group_by错误说明写的SQL语句不严谨,
对于group by聚合操作,select中的列只能是出现在group by中的列,使用聚合函数除外,如max()、min()等

解决方式①:

使用 group_concat() 或 any_value()
group_concat():将分到同一组的数据默认用逗号隔开作为返回数据
any_value():将分到同一组的数据里第一条数据的指定列值作为返回数据
修改后语句如下:

select GROUP_CONCAT(id), GROUP_CONCAT(no), uid from user_order group by uid;
select any_value(id), any_value(no), uid from user_order group by uid;

解决方式②:

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';

-- 刷新
flush privileges;

解决方式③:

永久生效,修改配置文件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'

保存,重启后生效。


原文链接:http://www.yaotu.net/biancheng/1203.html

标签:full,group,NO,MySQL,ZERO,mode,sql
From: https://www.cnblogs.com/a999/p/16880595.html

相关文章

  • Mysql数据库函数-单行函数
    一.单行函数:可以理解为向函数传入一个参数,返回一个值。单行函数是指对每一题记录输入值进行计算,并得到相应的计算结果,然后返回给用户,也就是说,每条记录作为一个输入参数,经......
  • docker安装mysql8
    1、问题描述docker安装mysql8,记录下;2、问题说明2.1查看下目前服务器镜像dockerimages2.1拉取最新mysql,5.8版本dockerpullmysql2.3run,构建容器命令:docker......
  • 【MySQL(二十一)】binlog 事件
    binlog时机事务提交时写入binlog,但是binlog持久化到磁盘与sync_binlog参数有关:0:只fwrite写入操作系统cache,由操作系统决定什么时候持久化到磁盘,及fsync;1:fsync直接写入磁盘;n:......
  • MySQL慢查询(下):问题解决,应用总结
    上篇回顾继上两篇:​​MySQL慢查询(上):你知道为啥会慢么?​​​​MySQL慢查询(中):正确的处理姿势,你get到了吗?​​在以上两篇内容中,我们一起探索了这些内容:SQL执行过程查询SQL为什......
  • MySQL慢查询(上):你知道为啥会慢么?
    正文共: 2487字 6图  预计阅读时间: 7分钟发现的一些问题问题1在过去的半年时间里,研发团队内部尝试抓了一波儿慢查询SQL跟进处理率。发现有些同学对于慢查询处理的思路......
  • 踩坑 MySQL 索引,看看你真的会用吗?
    关于MySQL索引,对于研发同学,尤其是后端研发同学,一定不会陌生。我们工作中经常会用到MySQL数据库,就肯定会经常用到性能优化方面的设计和考量,常常用涉及到MySQL索引。但......
  • 用实例带你了解 MySQL 全局锁
    MySQL全局锁会申请一个全局的读锁,对整个库加锁。全局锁的一般使用场景是:全局逻辑备份。全局锁的实现方式有两种://第一种方法Flushtableswithreadlock(FTWRL)//第二种方法......
  • ListView中排序和分组(GroupTemplate)的使用实例演示
    .aspx代码如下:<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="8_Group_Sort.aspx.cs"Inherits="Group_Sort"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0......
  • 【MySQL(八)】一致性非锁定读 锁定读 解析
    一致性非锁定读与锁定读的区别主要针对的是读操作在加锁方式上的差别。这里先看下锁的分类吧。mysql的行锁分为读锁与写锁。读锁即S锁,也叫共享锁,当事务读取一行数据时,会尝试......
  • 【MySQL(三)】buffer pool相关
    bufferpool是一种减少磁盘io读的机制,原理是将访问过的磁盘数据暂留在内存中,这样下次访问相同的数据就不需要读磁盘了。这个思想在平时的开发中,也经常用到,比如我们通常会在......