解决mysql5.7以上版本sql_mode=only_full_group_by

同样的一条复杂查询sql,在5.7版本的mysql中执行报错。在5.1版本缺能正常执行。

提示:…sql_mode=only_full_group_by

解决

1.此处解决后面创建的数据库的sql_mode

select @@sql_mode;

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'

在这里插入图片描述

2.此处解决当前数据库sql_mode

若数据库已经创建好,并在开发中使用着。需要执行如下口令:

##切到具体数据库
use  dbName;

select @@sql_mode;

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'

在这里插入图片描述

3.如若上述2种方式依然未能解决,则设置全局变量

select @@GLOBAL.sql_mode;

set @@GLOBAL.sql_mode =’’;
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u010312671/article/details/107086998