方法一 :在SQL查询语句中不需要group by的字段上使用any_value()函数
但这种对于已经开发了不少功能的项目不太合适,毕竟要把原来的SQL都给修改一遍
方法二 :修改my.cnf
(windows下是my.ini
)配置文件,删掉only_full_group_by
这一项
mysql 配置文件并没有sql_mode这一配置项,想删都没得删。
show VARIABLES like 'sql_mode'; select @@sql_mode;
可以查出sql_mode的值,复制这个值,在my.cnf(windows下是my.ini)中添加配置项(把查询到的值删掉only_full_group_by这个选项,其他的都复制过去):
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
如果 [mysqld] 这行被注释掉的话记得要打开注释。然后重启mysql服务
注:使用命令
set sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION; -- 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;
这样可以修改一个会话中的配置项,在其他会话中是不生效的。