首页 > 数据库 >MySql版本问题sql_mode=only_full_group_by

MySql版本问题sql_mode=only_full_group_by

时间:2024-04-28 10:22:56浏览次数:19  
标签:full group NO 子句 MySql ZERO mode sql

报错:1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated c

错误代码1055

原因  select子句中包含GROUP BY子句中没有的列,并且没有使用聚合函数,并且sql_mode=only_full_group_by

mysql5.7及之后版本默认启用了only_full_group_by SQL模式,这也是标准的sql语法

解决方法

  1. 如果你确实需要在select结果集中包含这一列,那么你应该在GROUP BY子句中添加这一列。

  2. 如果你不想在GROUP BY子句中添加这一列,那么你应该对它使用合适的聚合函数(如SUM, COUNT, MAX, MIN等)。

    3.修改sql_mode

    说一下如何修改sql_mode

    select @@GLOBAL.sql_mode;  查询当前的sql_mode

    SET sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';  修改当前数据库

    SET @@global.sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';  修改全部数据库

    也可以SET sql_mode ="" 直接置空

    这样改的话重启数据库会失效,但是可以实时解决问题。

    永久解决:修改mysql配置文件my.cnf(有的系统是my.ini)里的sql_mode,修改完后需要重启数据库

     

 

标签:full,group,NO,子句,MySql,ZERO,mode,sql
From: https://www.cnblogs.com/onlyzhangmeng/p/18163106

相关文章

  • [Err]1114 The table 'xxx' is full 的解决办法
    错误信息[ERR]1114-Thetable'th_exam_paper'isfull解决步骤查看服务器硬盘使用情况df-h数据库所在位置空间已经百分之一百,准备迁移数据库文件迁移mysql数据库文件到挂载盘要将MySQL数据库文件迁移到其他挂载盘,你需要做的是将数据文件复制到新位置,并更新MyS......
  • MySQL8.0.22安装
    MySQL8.0.22安装及配置(超详细)大家好,今天我们来学习一下MySQL8.0.22安装及配置,好好看,好好学,超详细的第一步进入MySQL官网下载,如下图所示:第二步进入下载完成后解压到除c盘以外的盘,如下图所示:第三步解压后的目录并没有的my.ini文件,没关系可以自行创建在安装根目......
  • MySQL-索引优化实战
     针对联合索引来说,如果第一列就是用范围查询,例如大于小于这些,就会认为查询的行很多,如果不是覆盖索引,那么就不再使用这个二级索引,认为使用二级索引还要频繁的去回表查询等等,消耗更大,所以就会去全表扫描。但是可以使用forceindex(索引名称)去强制使用指定的索引,但是一般不建议这......
  • 【mysql】mysql安装使用教程
    参考说明:更改时区部分,摘自:2024年MySQL8.0安装配置教程最简易(保姆级)_mysql安装-CSDN博客一、下载安装包1、进入官网,下载mysql社区版安装包MySQL::下载MySQL安装程序 二、安装1、安装包下载完成后,双击安装包,进入安装指引2、安装指引中,选择自定义安装Custom,并点击......
  • MySQL 中表空间的查看和清理
    /*查看所有数据库容量大小*/SELECTtable_schema,table_name,data_free,ENGINEFROMinformation_schema.tablesWHEREtable_schemaNOTIN('sys','mysql','performance_schema','information_schema','test')ANDdata......
  • MySQL(1)-索引底层为什么用B+树
    最近在看面经,发现有很多跟B+树相关的问题,为此需要单独总结一下让自己形成一个体系。核心内容是为什么MySQL采用B+树作为索引?|小林coding所以可以直接看小林code的讲解,很到位。进入正题前,首先要对B树、B+树、二分查找树、自平衡二叉树、索引这些概念了初步解再分析具体问题......
  • MySQL LIMIT 和 ORDER BY 优化
     MySQLLIMIT子句MySQLLIMIT子句是控制SELECT语句返回行数的重要工具。通过指定从结果集中获取的最大行数,它可以让你处理数据子集,尤其是在涉及大表的情况下。该功能可提高查询性能,并通过只获取必要的行来优化资源使用。 MySQLLIMIT子句的语法MySQL中的LIMIT子句......
  • MySQL学习之explain
     from之后的查询得到的表叫做衍生表,是临时表数据,生成临时表之后的数据是无法使用索引的,如果数据量大查询效率就会比较低,这就是查询要尽量少使用子查询这些临时表。  explain详解id:表示查询序号,也可以表示优先级;当值都不一样的时候,值越大表示优先级越高,越先执行;当值都一......
  • 深入mysql索引
    1.索引索引是对数据库表中一列或多列的值进行排序的一种结构。 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。索引只是提高效率的一个因素,如果你的MySQL有大数据量的表,就需要花时间研究建立最优秀的索引,或优化查询语句。简单类比一下,数据库......
  • sync.WaitGroup
    sync.WaitGroup是Go语言标准库中提供的一个同步原语,用于在并发环境中协调多个Goroutine的执行顺序,确保所有并发任务完成后再继续执行后续逻辑。以下是sync.WaitGroup的使用方法:创建WaitGroup:使用sync.WaitGroup类型的零值创建一个实例,无需调用任何构造函数:varw......