900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > MySQL中count() group by order by的具体使用详解

MySQL中count() group by order by的具体使用详解

时间:2024-05-06 12:28:41

相关推荐

MySQL中count()  group by  order by的具体使用详解

数据库|mysql教程

MySQL,count(),order by

数据库-mysql教程

mysql中order by 排序查询、asc升序、desc降序,group by 分组查询、having 只能用于group by子句、作用于组内,having条件子句可以直接跟函数表达式。使用group by 子句的查询语句需要使用聚合函数。

简单的oa系统源码,gcc在ubuntu下载,win7中tomcat,python爬虫按钮,php导出mysql到txt,tab seolzw

最近做IM的时候遇到一个问题,同时用到了这三个关键字。就是查询一个人的离线消息详情,我们服务端返回给客户端显示的这个详情包括了三个内容,第一个要求列出离线这段时间哪些人或者群给你发了消息,第二个这其中的某个人或者群发了多少条离线消息,第三个拿出最新的一条显示出来。很明显,group by分组哪些人或者群给你发了离线消息,count()得到离线消息数量,order by时间来排序拿出最新的消息。

易语言视频源码,vscode 安装scipy,ubuntu开启dns服务,内嵌 tomcat 静态,sqlite新增列语句,折叠下拉列表插件,前端框架编译器,python爬虫自动翻页,php 地址栏,chae min seo,网站答题模板下载,网页导航换页,dz论坛商业模板,wordpress添加页面模板,蓝科企业网站管理系统php版v2.0,简单的服务器程序lzw

select count(1) as cnt, msg_data from t_im_chat_offline_msg where to_company_id = ? and to_user_id = ? order by create_time desc group by from_company_id, from_user_id;

然后果不其然group by和order by一起检索就报错了,我们可以用嵌套子查询。

数据中心 源码,vscode设置图片尺寸,Ubuntu的sata,tomcat加到服务中,高阶爬虫手段,html中引入php,浦城专业seo服务费,php网站的html源码,emlog带广告模板下载lzw

select count(1) as cnt, msg_data from (select * from t_im_chat_offline_msg where to_company_id = ? and to_user_id = ? order by create_time desc) as temp_table group by from_company_id, from_user_id;

我们可以对已经排序的结果集,再来分组并计算数量。这里还有一个暗坑,我自己不小心给躲过去了,其实count()会造成order by排序无效,举个例子:

select count(1) as cnt, msg_data from t_im_chat_offline_msg where to_company_id = ? and to_user_id = ? order by create_time desc;

这个语句最后得到的一条记录,其中的msg_data其实是根本没有排序的结果,也就是数据库原顺序,应该是先插入的一条消息,就是说时间旧的消息。为了避免这个问题,所以嵌套子查询在这里先排序,再让它去count()就规避了。自己无意躲过去了,还好反复改语句测试了一番才发现。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。