数据库查询时,出现如下错误: Caused by: com.mysql.jdbc.exceptions.jdbc4MySQLSyntaxErrorException: In aggregated query without GROUP BY, expression #1 of SELECT list contains nonaggregated column 'credit_server.credit.id'; this is incompatible with sql_mode=only_full_gro
MySQL 5.7 对比 5.6 有很多的变化。一个常见的需求:按条件分组后,取出每组中某字段最大值的那条记录。其实就是组内排序的问题,我的做法是:子查询先进行倒序排序,外层查询分组。
今天上班的时候,业务方问了我这样一个问题:能不能把线上的sql_mode值改为和测试环境一致?因为我们在测试环境上写的sql在线上可能会出错,原因是线上的环境设置了sql_mode=only_full_group_by。
这种修改,不持久化,重启数据库后会再次出现此问题,所以,我们需要将此设置持久化到配置文件中。 首先找到mysql的配置文件,不同安装方式,配置文件位置或者名字不一样,我这里是my.cnf,未修改前内容如下:
近期多次聊到sql_mode的话题,也是多次遇到相关问题,今天就趁热打铁,再给大家带来一个sql_mode的案例分享。
如果你确定查询的逻辑和数据不会引起问题,可以在查询之前执行以下命令来临时禁用only_full_group_by模式:
下载MySQL的 Yum Repository。 一般需要根据 CentOS 版本选择 MySQL 下载命令:
和群友讨论,测试了一下ONLY_FULL_GROUP_BY,供大家参考(基于mysql 8.0.27)。
这个是由于MySQL在5.7版本中添加了一个sql_mode: ONLY_FULL_GROUP_BY,当配置了此sql_mode后,select语句中要查询的字段必须严格是group by语句中的字段或者是聚合函数。
本来今天是要接着整理日志系统的优化的,但是自己对梳理一些名词理解有些欠缺,思来想去还是想讨论下group by语法问题,这个问题我以前举例说明过,脑海里就一致这么认为:在SELECT 列表中所有未包含在组函数中的列都应该是包含在 GROUP BY 子句中的。
使用 GROUP BY 报错 In aggregated query without GROUP BY, expression #2 of SELECT list contains nonaggregated column 'st 解决方案 转载:https://cloud.tencent.com/developer/article/1404739 查询 select version(), @@sql_mode; 修改 SET sql_mode=(SELECT REPLACE(@@
用到GROUP BY 语句查询时com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'col_user_6.a.START_TIME' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by错误
报错内容 Error Code: 1055. Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column '{field}' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by 0.053 sec 确认
发现原来是MYSQL 8不支持在sql_mode包含only_full_group_by时(默认包含)
如果是Linux,就在配置文件(my.cnf)中修改 sql_mode 的配置(在/etc/my.cnf路径下)。如果是Windows,就修改配置文件my.ini,我的是Windows,如下所示:
Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'information_schema.ENGINES.ENGINE' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
用到GROUP BY 语句查询时com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘col_user_6.a.START_TIME’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by错误
1. 在5.7版本以上mysql中使用group by语句进行分组时, 如果select的字段 , 不是完全对应的group by后面的字段 , 有其他字段 , 那么就会报这个错误
Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'test.w.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默认使用的sql_mode与5.6有所变化。mysql 5.7默认要求group by中的列一定要出现在select中。 建议修改sql_mode,写入数据库配置my.cnf中。
[Err] 1055 - Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'tase1.ai.home_url' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
分组查询关键字group by通常和集合函数(MAX、MIN、COUNT、SUM、AVG)一起使用,它可以对一列或者多列结果集进行分组。例如要统计超市水果的种类,需要用count函数,要统计哪个水果价格最高,要用MAX()函数。
一直想开发或者找一个开源的软件,功能就类似看云一样,用来搭建属于一套自己的文档管理系统,将自己平常的东西集中化管理,形成一个手册。于是找到了mindoc这样一款不错的文档管理系统软件。本文大致介绍一下如何安装,基本的功能介绍。
字段:id, student_id, name, dt, height, weight
下面是我们整理的php的laravel学习的常见的错误以及解决的办法,我还会持续更新,请关注
问题出现的原因: MySQL 5.7.5及以上功能依赖检测功能。如果启用了ONLY_FULL_GROUP_BY SQL模式(默认情况下),MySQL将拒绝选择列表,HAVING条件或ORDER BY列表的查询引用在GROUP BY子句中既未命名的非集合列,也不在功能上依赖于它们。(5.7.5之前,MySQL没有检测到功能依赖关系,默认情况下不启用ONLY_FULL_GROUP_BY。有关5.7.5之前的行为的说明,请参见“MySQL 5.6参考手册”。)
MySQL执行如下group by 语句报错:1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘table_zjq.id’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
使用group by 进行分组查询时,提示异常: SELECT list is not in GROUP BY clause and contains nonaggregated column ‘XXX’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode =only_full_group_by
方法一 使用命令行或者数据库客户端执行SQL 1.SQL语句,select @@global.sql_mode查询
将数据从旧的数据库(MySQL5.1)迁移到新的数据库(MySQL5.7)中时,查询语句不变的情况下,报如下错;
解释:ONLY_FULL_GROUP_BY: 对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么将认为这个SQL是不合法的,因为列不在GROUP BY从句中
顺利的通过了,但是,你发现没有,前面的smo,sname,age,这3列的数据不对啊,没错,MySQL强行显示第一次查找到的saddress不同的行了!!!其实这个结果是不对,但是MySQL应该是兼容了这个错误! 而DOS却是严格按照SQL的语法来的。
1055 - Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'fbjs.mscc.ContactTime' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by, Time: 0.000000s
第一项默认开启ONLY_FULL_GROUP_BY了,导致出现了错误,需要把它的默认关掉。
这个错误发生在mysql 5.7 版本及以上版本,5.7版本默认的sql_mode配置中包含 ONLY_FULL_GROUP_BY,这个配置严格执行了”SQL92标准”
>mvn versions:set -DnewVersion=0.0.2-SNAPSHOT
ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'database_tl.emp.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
SELECT id, name, count(*) AS cnt FROM case_table GROUP BY name
错误原因: MySQL 5.7.5及以上版本实现了对功能依赖的检测。如果启用了only_full_group_by SQL模式(在默认情况下是这样),那么MySQL就会拒绝选择列表、条件或顺序列表引用的查询,这些查询将引用组中未命名的非聚合列,而不是在功能上依赖于它们。(在5.7.5之前,MySQL没有检测到功能依赖项,only_full_group_by在默认情况下是不启用的。关于前5.7.5行为的描述,请参阅MySQL 5.6参考手册。)
使用GROUP BY 语句违背了sql_mode=only_full_group_by。因为mysql版本5.7之后默认的模式是ONLY_FULL_GROUP_BY。官网文档的原话:
原因分析:MySQL5.7版本默认设置了 mysql sql_mode = only_full_group_by 属性,导致报错。
情景摘要 今天写了个非id 的group by,结果提示1055 sqlalchemy.exc.InternalError: (pymysql.err.InternalError) (1055, "Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'heanny.map_cameras.id' which is not functionally dependent on colum
在项目开发中,往往会遇到很多错误,有些是代码有误,而有些则是其他原因。接下来一起看看常见的报错及解决办法(小白整理,大牛勿喷)。
修改/etc/my.cnf 添加一项代码 sql-mode=”STRICT_ALL_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ZERO_DATE,NO_ZERO_IN_DATE,NO_AUTO_CREATE_USER” 重启服务 systemctl restart mysqld
假设我们在数据库中使用自增id连续插入两条数据,生成的id分别是1和2,这个时候我把id为2的删除掉,这个时候我再插入一条数据,生成的id为3
MySQL 5.7.9版本sql_mode=only_full_group_by问题 用到GROUP BY 语句查询时com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘col_user_6.a.START_TIME’ which is not functional
MySQL 5.7.9版本sql_mode=only_full_group_by问题
领取专属 10元无门槛券
手把手带您无忧上云