登录
首页 >  数据库 >  MySQL

MySQL解决 ONLY_FULL_GROUP_BY 错误的几个方法

来源:SegmentFault

时间:2023-02-25 09:00:23 447浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个数据库开发实战,手把手教大家学习《MySQL解决 ONLY_FULL_GROUP_BY 错误的几个方法》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

原文链接:何晓东 博客

在 MySQL 5.7版本以上进行一些

select @@global.sql_mode;

去掉里面的

set @@global.sql_mode = "查出来的值,去掉 ONLY_FULL_GROUP_BY"
 修改配置文件中的 ONLY_FULL_GROUP_BY 模式

找到

sql_mode="查出来的值,去掉 ONLY_FULL_GROUP_BY"
 借助 and_value() 函数忽略没有参与分组的列

可以使用

mysql> SELECT name, MAX(age) FROM t;

ERROR 1140 (42000): In aggregated query without GROUP BY, expression

#1 of SELECT list contains nonaggregated column 'mydb.t.name'; this

is incompatible with sql_mode=only_full_group_by

借助

SELECT ANY_VALUE(name), MAX(age) FROM t;

官方文档提示:如果您根本不在乎为每个组选择未聚合列的哪个值,则这可能很有用。与

SUM()
COUNT()
之类的函数不同,
ANY_VALUE()
不是聚合函数。它只是起到抑制不确定性测试的作用。

参考链接: MySQL Handling of GROUP BY

最后恰饭 阿里云全系列产品/短信包特惠购买 中小企业上云最佳选择 阿里云内部优惠券

本篇关于《MySQL解决 ONLY_FULL_GROUP_BY 错误的几个方法》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于数据库的相关知识,请关注golang学习网公众号!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>