this is incompatible with sql_mode=only_full_group_by

mysql 迁移到5.7后业务日志中出现:

this is incompatible with sql_mode=only_full_group_by

解决方法:

1. https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html

ANY_VALUE()

2. SQL MODE 设置为空。

时间: 2024-09-12 06:55:34

this is incompatible with sql_mode=only_full_group_by的相关文章

mysql java-incompatible with sql_mode=only_full_group_by

问题描述 incompatible with sql_mode=only_full_group_by [Err] 1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'xxx.xxx.id' which is not functionally dependent on columns in GROUP BY clause; this is incompati

MySQL sql_mode 说明(及处理一起 sql_mode 引发的问题)

1. MySQL莫名变成了 Strict SQL Mode 最近测试组那边反应数据库部分写入失败,app层提示是插入成功,但表里面里面没有产生数据,而两个写入操作的另外一个表有数据.因为 insert 失败在数据库层面是看不出来的,于是找php的同事看下错误信息: [Err] 1364 - Field `f_company_id` doesn't have a default value 很明显2个 insert 操作,第一条成功,第二条失败了,但因为没有控制在一个事务当中,导致app里面依然提

postgresql 聚合的暗坑

--对于聚合操作,pg约束是不严格的,比如如下sql中,group by 缺少 name,但也能执行 postgres=# select id,name ,count(*) from t group by id; id | name | count ----+------+------- 1 | bcd | 1 2 | abc | 1 --现模拟如下 create table t(id int,name varchar(20)); insert into t values(1,'abc'),(2

SQL-GROUP BY语句在MySQL中的一个错误使用被兼容的情况

首先创建数据库hncu,建立stud表格. 添加数据: create table stud( sno varchar(30) not null primary key, sname varchar(30) not null, age int, saddress varchar(30) ); INSERT INTO stud VALUES('1001','Tom',22,'湖南益阳'); INSERT INTO stud VALUES('1002','Jack',23,'益阳'); INSERT

Mysql中错误使用SQL语句Groupby被兼容的情况

首先创建数据库hncu,建立stud表格. 添加数据: create table stud( sno varchar(30) not null primary key, sname varchar(30) not null, age int, saddress varchar(30) ); INSERT INTO stud VALUES('1001','Tom',22,'湖南益阳'); INSERT INTO stud VALUES('1002','Jack',23,'益阳'); INSERT

mysql的sql_mode模式

在oracle或sqlserver中,如果某个表的字段设置成not null,insert或update时不给这个字段赋值,比如下面这样: 表t_test(id,name)中id,name都不允许为空, insert into t_test(name) values('xxx') 必然报错,这是天经地义的事情,但是在mysql中这是有可能成功,具体取决于sql_mode的设置   大概上讲,sql_mode可以分为二大类: 一类是所谓的宽松无敌模式(my.ini中sql_mode设置为空或仅NO

设置mysql的sql

  author:skate time:2013/04/11 mysql的sql_mode合理设置 sql_mode是个很容易被忽视的变量,默认值是空值,在这种设置下是可以允许一些非法操作的,比如允许一些非法数据的插入.在生产环境必须将这个值设置为严格模式,所以开发.测试环境的数据库也必须要设置,这样在开发测试阶段就可以发现问题 sql_mode常用值如下: ONLY_FULL_GROUP_BY: 对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQ

mysql 查看和设置变量

mysql 查看和设置变量 查看变量 SELECT @@sql_mode 范例: mysql> SELECT @@sql_mode -> ; +-----------------------------------------------+ | @@sql_mode | +-----------------------------------------------+ | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZER

MySQL 5.7版本新特性连载(四)

本文是基于MySQL-5.7.7-rc版本,未来可能 还会发生更多变化. 1.SQL MODE变化 a. 默认启用 STRICT_TRANS_TABLES 模式: b. 对 ONLY_FULL_GROUP_BY 模式实现了更复杂的特性支持,并且也被默认启用: c. 其他被默认启用的sql mode还有 NO_ENGINE_SUBSTITUTION: [iMySQL建议] 对广大MySQL使用者而言,以往不是那么严格的模式还是很方便的,在5.7版本下可能会觉得略为不适,慢慢习惯吧.比如向一个20字