分享好友 最新资讯首页 最新资讯分类 切换频道
sql 分页查询 order by和group by一起使用导致排序失效问题解决
2024-11-07 23:20

背景:在查询数据库数据的时候,很多时候我们需要用到group by来进行分组,同时使用order by进行排序,但是当两个同时使用时稍不注意就会出现问题。我在进行公司项目开发时就出现了问题:通过分页查询对查询的数据进行分组,通过聚合函数对分组数据处理,然后排序返回到前端显示,后面发现前端分页的数据会出现重复或丢失。分析判断应该是sql排序失效导致分页查询数据异常,后面查资料证实了这一点。

sql 分页查询 order by和group by一起使用导致排序失效问题解决

1. GROUP BY 和 ORDER BY 的作用

GROUP BY:group by用于借助诸如 COUNT()、AVG()、MIN() 和 MAX() 之类的聚合函数将数据分组。它的工作方式是,如果特定的列在不同的行中具有相同的值,它会将这些行合并为一组。

ORDER BY:order by从英文里理解就是行的排序方式,默认的为升序。 order by 后面必须列出排序的字段名,可以是多个字段名。asc升序、desc降序

2.注意事项

1. 在使用group by的语句中,select字段只能用于分类的列(表达式,或聚合函数。where条件用于group by之前,having用于group by 之后对结果进行筛选。

2. order by 的字段,必须包含group by 子句里的全部字段,否则排序失效(重要

3. 结果演示 

1. 这是我之前出问题的sql,直接使用group by和order by分页查询数据

 

limit分页(0,10)查询结果如下

 limit分页(10,10)查询结果如下

 发现查出数据会有重复数据甚至数据丢失,说明sql的排序没有生效,导致每次查出来的数据不一致,自然再分页肯定会出问题

2. 将sql修改为下面就没问题了,order by字段必须包含group by的字段,排序就能正常工作


最新文章
Ubuntu
Ubuntu叫法很多(乌班图、优班图、友帮拓),因为笔者打算学习Django,所以安装Ubuntu进行学习。本次会
十大电脑视频剪辑软件排名 视频剪辑软件哪个好
坦率地说,视频正日益成为社交媒体和营销的重要组成部分。越来越多的人参与视频编辑,其中最关键的是视频编辑软件。而市场上的视
Optimizing Website Keywords for Improved SEO Performance
Abstra: Optimizing website keywords is a crucial aspe of improving SEO performance. By strategically choosing and implem
org域名代表什么 org域名是什么网站
域名是网站的标识,一个简单易记的域名可以让访问者更容易记住您的网站。网站域名后缀有很多,比如常见的.org、.com、.net等国际
全方位解析热门话题:深入探讨用户最关心的热点问题与解决方案
随着人工智能技术的发展其在医疗领域的应用日益广泛。算法可以在短时间内分析大量病例数据,辅助医生实行精准诊断,升级治疗效果
【增长】机构:预计2024年Mini LED背光产品出货增长至1379万台;天钰:AMOLED驱动芯片将于2024年Q2量产;大尺寸LCD/OLED面板供需情况改善
1.机构:预计2024年Mini LED背光产品出货增长至1379万台2.天钰:AMOLED驱动芯片将于2024年Q2量产3.京东方终止云南OLED项目10亿元
2025年百度广告投放最新实战指南
在数字化营销日益重要的今天,百度广告投放已成为众多企业推广品牌、吸引潜在客户的重要手段。然而,随着市场竞争的加剧,如何高
SEO优化站长如何提高搜索排名
在当今竞争激烈的数字市场中,提升网站的搜索排名是每位站长的主要目标。通过有效的SEO策略,不仅可以提高网站的可见性,还能吸
企业在线竞争力提升——专业SEO推广服务助力突破
网站优化SEO推广服务,专注于帮助企业提升在线竞争力。通过专业技术和策略,优化网站排名,吸引潜在客户,助力企业拓展市场,实
全面解析宏碁暗影骑士软件:提升游戏性能的利器
在现代游戏环境中,电脑性能往往是决定玩家游戏体验的关键因素之一。对于游戏爱好者来说,拥有一款能够有效提升游戏性能的软件是