ONLY_FULL_GROUP_BY的问题
程序员文章站
2022-03-09 10:45:54
...
公司的数据库,改不了配置。
那就写规范的语句,或者使用ANY_VALUE
规范
含义 sql中select后面的字段必须出现在group by后面,或者被聚合函数包裹,不然会抛出上面的错误 如以下sql
select A.column1, A.column2 from table as A group by column1 //会因为ONLY_FULL_GROUP_BY的缘故抛出上面错误
ANY_VALUE
1.MySQL5.7之后,sql_mode中ONLY_FULL_GROUP_BY模式默认设置为打开状态。
2.ONLY_FULL_GROUP_BY的语义就是确定select target list中的所有列的值都是明确语义,简单的说来,在此模式下,target list中的值要么是来自于聚合函数(sum、avg、max等)的结果,要么是来自于group by list中的表达式的值
3.MySQL提供了any_value()函数来抑制ONLY_FULL_GROUP_BY值被拒绝
4.any_value()会选择被分到同一组的数据里第一条数据的指定列值作为返回数据
来源:
真正有效解决ONLY_FULL_GROUP_BY的问题_索隆有几把刀的博客-CSDN博客_only_full_group_by关闭有影响吗
上一篇: C# 动态创建委托
下一篇: c#结构 ASP.NET