登录
首页 >  数据库 >  MySQL

MySQL 分组查询中 GROUP BY 要求:何时需要禁用 ONLY_FULL_GROUP_BY 模式?

时间:2024-11-20 10:40:07 403浏览 收藏

小伙伴们有没有觉得学习数据库很有意思?有意思就对了!今天就给大家带来《MySQL 分组查询中 GROUP BY 要求:何时需要禁用 ONLY_FULL_GROUP_BY 模式?》,以下内容将会涉及到,若是在学习中对其中部分知识点有疑问,或许看了本文就能帮到你!

MySQL 分组查询中 GROUP BY 要求:何时需要禁用 ONLY_FULL_GROUP_BY 模式?

mysql 分组查询中的 group by 要求

在 mysql 中执行分组查询时,通常需要在 group by 子句中指定 select 语句中涉及的所有非聚合列。然而,某些情况下,您可能会发现这一要求并不严格。

默认情况下,从 mysql 5.7 开始,only_full_group_by 模式已启用。在这种模式下,所有非聚合列都必须出现在 group by 子句中。这有助于确保结果的正确性和一致性。

但是,您可以选择禁用 only_full_group_by 模式。为此,请将 only_full_group_by 选项从 sql_mode 设置中删除。禁用后,mysql 将不再强制执行 group by 中的完整字段列表。

例1:使用 only_full_group_by 模式

select * from table_name group by column1;
-- 会抛出错误,因为 column2 未包含在 group by 子句中

例2:禁用 only_full_group_by 模式

SET SQL_MODE = 'ALLOW_PARTIAL_GROUP_BY';

SELECT * FROM table_name GROUP BY column1, column3;
-- 不会抛出错误,group by 允许部分字段

需要注意的是,禁用 only_full_group_by 模式可能会对查询结果的准确性产生负面影响。 dlatego disarankan untuk menggunakan modenya hanya jika benar-benar diperlukan.

以上就是《MySQL 分组查询中 GROUP BY 要求:何时需要禁用 ONLY_FULL_GROUP_BY 模式?》的详细内容,更多关于的资料请关注golang学习网公众号!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>