问题:
mysql5.7及以上版本,查询语句中如果有group by,在select中的列没有在group by中出现,则会报错sql_mode=only_full_group_by
原因:
mysql5.7版本开始,默认开启only_full_group_by限制
解决:
方案一:把select中查询的列添加any_value()函数
方案二:关闭sql_mode的only_full_group_by限制
具体:
vim /etc/my.cnf
在[mysqld]配置内添加
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
需要重启mysql
service mysqld restart
验证:
登录mysql查看
select @@sql_mode
发现结果中已经没有ONLY_FULL_GROUP_BY
以上