当前位置:首页 > 数据库 > MYSQL使用GROUP BY 时报错only

MYSQL使用GROUP BY 时报错only

2022年11月10日 08:40:47数据库8

我在输入SQL语句 

 SELECT grade FROM sy_epwk GROUP BY grade='一品';

时mysql报错:ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'pro_data.sy_epwk.grade' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

各种百度寻找解决方法,了解到使用group by select中要有聚合函数,并且所有非聚合函数的列都要现现在group by 后

可是我是个新手,理解不了这句话的含义。试过百度上的设置sql_mode,可是设置了很久都报错。于是自己查看官方文档

 

 

先在mysql客户端输入show variables like 'sql_mode';查看当前的sql_mode:

MYSQL使用GROUP BY 时报错only _ JavaClub全栈架构师技术笔记

 

我发现只要把开头的ONLY_FULL_GROUP_BY去掉就可以了

于是输入 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';

MYSQL使用GROUP BY 时报错only _ JavaClub全栈架构师技术笔记

 

最后再运行SELECT grade FROM sy_epwk GROUP BY grade='一品';

MYSQL使用GROUP BY 时报错only _ JavaClub全栈架构师技术笔记

执行成功

作者:weixin_42292991
来源链接:https://blog.csdn.net/weixin_42292991/article/details/86615312

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/database/69246.html

标签: group byMySQL
分享给朋友:

“MYSQL使用GROUP BY 时报错only” 的相关文章

MySQL面试有这一篇就够了

MySQL面试有这一篇就够了

MySQL面试常见知识点 1、 MySQL常用的存储引擎有什么?它们有什么区别? InnoDB InnoDB是MySQL的默认存储引擎,支持事务、行锁和外键等操作。 MyISAM MyISAM是M...

mysql 查询1小时内

mysql 查询1小时内

由于项目的需要经常查询一个小时之内的数据,接下来吾爱编程为大家分享一下使用Mysql查询一个小时之内的数据的sql,有需要的小伙伴可以参考一下: 1、方法一: (1)、sql写法: SELECT * FROM 表名&...

MySQL 查询指定时间范围内的数据

  说明 mysql 比较时间范围可以直接用 >=、<= 等比较运算符,也可以用 between and(两边都包含,都是闭区间);比较运算符更常用,因为 between and 能做的比较运算符也能做, bet...

mysql递归查询

  在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点。但很遗憾,在MySQL的目前版本中还没有对应的功能。   在MySQL中如果...

MySQL学习(4)︱数据库的查询

MySQL学习(4)︱数据库的查询

在SQL中,使用select语句来查询数据。不同的关系数据库,select语法会有细微差别,在MySQL官网可以查询到支持的select语法。 SQL语法: SELECT column_name1, column_name2//...

Mysql 查询结果赋值到变量

1. 单个赋值 - 使用into SELECT `name` INTO @name FROM table WHERE `id`=1 ; 2.多个赋值 - 直接赋值 SELECT @name:=`name`, @phone:=`phone` FROM t...

mysql 查询表 所有字段

复制表结构 CREATE TABLE tb_students_copy LIKE tb_students_info; 查询mysql所有表数据、字段信息 mysql 查询表 所有字段 前2种有重复 select COLUMN_NAME...

mysql的查询句

1、查询特定列:select 列名 from 表名;(必须先进入数据库)或者 select 列名 from 数据库.表名; 2、查询多个列:select 列1,列2,。。。 from 表名; 3、除去重复列查询:select distinct 列名 fr...

mysql查询给某个字段赋值

select case field when ‘’ then ‘指定一个值’ when '未知’then ‘指定一个值’ else field end from table 这种方式遇到null时就不太好使了 当遇到值为null 的情况时这样用 s...

Mysql查询当天,本周,本月所有数据记录

Mysql查询当天,本周,本月所有数据记录 一、查询当天的记录: select * from create_time where TO_DAYS(create_time) = TO_DAYS(NO...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。