Mysql5.7及以上版本 ONLY_FULL_GROUP_BY问题

问题:

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

以上

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容