mysql - php,根据文章统计到的评论条数排序,怎么样的方式最快?

查看:155
本文介绍了mysql - php,根据文章统计到的评论条数排序,怎么样的方式最快?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

目前是把所有数据取出来,再排序,速度很慢。而且现在要求做分页。

在不考虑加评论总数这个字段的情况下,有没有更优的方法?原生的sql语句可以直接完成吗?

解决方案

SELECT 
    posts.id, 
    posts.content, 
    comments.id AS comment_id,
    comments.body,
    count(comments.id)
FROM posts
LEFT JOIN comments --左连接,保证左表posts中没有评论的文章也显示出来
ON posts.id = comments.post_id 
GROUP BY posts.id --分组,配合count(comments.id)统计到每篇文章的评论数
ORDER BY count(comments.id) DESC, posts.id DESC --按评论数排序,相同则按文章ID排序
LIMIT 2 OFFSET (3-1)*2 --分页,2表示每页显示的文章数量,3表示第3页

这篇关于mysql - php,根据文章统计到的评论条数排序,怎么样的方式最快?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆