mysql查询出现 this is incompatible with sql_mode=only_full_group_by

出现问题:

Error querying database.  Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: In aggregated query without GROUP BY,expression #2 of SELECT list contains nonaggregated column 'pay.t.type'; this is incompatible with sql_mode=only_full_group_by

出现原因:

在MySQL5.7.5后,默认开启了ONLY_FULL_GROUP_BY,所以导致了之前的一些SQL无法正常执行,其实,是我们的SQL不规范造成的,因为group by 之后,返回的一些数据是不确定的,所以才会出现这个错误。

方案一:修改SQL,因为出现这个问题,基本都是因为这个问题造成的,不确定返回字段可以使用ANY_VALUE(column_name)。

方案二:关闭ONLY_FULL_GROUP_BY,我的是Linux环境,我就说一下Linux的解决步骤:

在liunx中   vi /etc/my.cnf

在[mysqld]下面添加如下列:

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

重启:systemctl restart mysqld

详细请参考:https://www.linuxidc.com/Linux/2016-01/127234.htm

 

你可能感兴趣的:(mysql查询出现 this is incompatible with sql_mode=only_full_group_by)