sql_mode=only_full_group_by 解决办法

今天在Navicat执行sql报错

网上查了一下,原因是mysql5.7以上默认开启了only_full_group_by 模式

解决办法:

1、查看sql_mode

SELECT @@sql_mode;

2、重新设置值,去掉ONLY_FULL_GROUP_BY

SET @@global.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、上面是改变了全局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';

猜你喜欢

转载自blog.csdn.net/qq_29720657/article/details/105726541