栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

MySQL分组前排序

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MySQL分组前排序

select wp_posts.* from wp_posts

where wp_posts.post_status='publish'and wp_posts.post_type='post'

group by wp_posts.post_author

having wp_posts.post_date = MAX(wp_posts.post_date) 

order by wp_posts.post_date desc




编辑:

经过一番评论后,我决定添加一些其他信息。

我工作的公司也使用Postgres,尤其是SQL
Server。该数据库不允许此类查询。因此,我知道还有另一种方法(我在下面写了一个解决方案)。如果您不按投影中处理的所有列分组或使用汇总函数,则还应该知道该怎么做。否则就这样吧!

我选择了上面的解决方案,因为这是一个特定的问题。汤姆希望在wordpress网站上获得每位作者的最新帖子。在我看来,如果作者每秒发表一个以上的帖子,则可以忽略不计。WordPress甚至应该通过垃圾邮件双重检测来禁止它。我从个人经验中知道,使用MySQL做这样一个肮脏的小组,对性能有很大的好处。但是,如果您知道自己的工作,那么就可以做到!我在专业负责的应用程序中有如此肮脏的小组。在这里,我的表有一些mio行,需要5到15秒而不是100
++秒。

可能对某些利弊有用:http :
//ftp.nchu.edu.tw/MySQL/tech-resources/articles/debunking-group-by-
myths.html


SELECt    wp_posts.*FROM     wp_posts    JOIN     (        SELECt g.post_author MAX(g.post_date) AS post_date        FROM wp_posts as g        WHERe g.post_status='publish' AND g.post_type='post'        GROUP BY g.post_author    ) as t     ON wp_posts.post_author = t.post_author AND wp_posts.post_date = t.post_dateORDER BY wp_posts.post_date

但是如果一个作者每秒多发一篇帖子,那么您将得到的一行多一行,而不是 最后一行

现在,您可以再次旋转轮子,并获得最高职位

Id
。即使在这里,也至少不能保证您真的得到了最后一个。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/395320.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号