首页 > 数据库    日期:2024-06-07 / 浏览

问题背景

在实际业务场景中,我们有时会对某些字段进行分组统计,并且需要查出多余字段展示。比方说根据机构id统计每个机构下有多少部门,字段展示机构名称、部门数量、机构id。

Mysql查询不需要Group by的字段方法实例

这时会提示查询的字段必须得在group by子句中,否则无法执行。

解决方案

  • 使用any_value,屏蔽严格模式(Oracle、MySql都可)。

Mysql查询不需要Group by的字段方法实例

  • 使用max()或者min函数(Oracle、MySql都可)。

Mysql查询不需要Group by的字段方法实例

  • 修改sql_mode或修改配置文件(仅MySql)。

先查看@@sql_mode模式,看是否开启了only_full_group_by 严格模式。

Mysql查询不需要Group by的字段方法实例

本人本地的Mysql未开启,如果开启的话,而你又想屏蔽严格模式,则执行下列语句即可。

-- 屏蔽严格模式
set @@sql_mode = 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION';
-- 查询@@sql_mode
select @@sql_mode

总结 

觉得上面的内容有用吗?快来点个赞吧!

点赞() 我要打赏

温馨提示 : 本站内容来自会员投稿以及互联网,所有源码及教程均为作者总结编辑,请大家在使用过程中提前做好备份,以免发生无法预知的错误,源码类教程请勿直接用于生产环境!

 可能感兴趣的文章