mysql中GROUP BY时报错sql_mode=only_full_group_by错误
今天在上正式数据服务器测试软件时突然发生了sql_mode的报错: sql_mode=only_full_group_by。之前在本地库的时候没有遇到过一脸懵逼,在查阅了资(bai)料(du)之后才明白原来是数据库版本为5.7以上的版本,默认是开启了 only_full_group_by
模式的,但开启这个模式后,原先的 group by
语句就报错。
首先使用以下查询语句查询是否含有only_full_group_by:
select @@GLOBAL.sql_mode;
然后使用如下sql语句进行sql_mode的更新,去除掉only_full_group_by:
set @@GLOBAL.sql_mode=''; set @@GLOBAL.sql_mode='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION';
这样更新之后在不进行服务器重启时可以一直使用,但是一旦服务器重启之后将会回归原来的样子only_full_group_by一样的存在。
所以对此我们需要对mysql的配置文件my-default.ini (或者my.cnf)进行修改,在里面的[mysqld]下面添加
sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
实图如下:
这样即使重启服务器那么sql_mode一样的不会含有only_full_group_by了,这样就OK了
--------------------------------------------------------------------------------------分割线-------------------------------------------------------------------------------------------------------------------
个人使用