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

php中文网
发布: 2016-08-20 09:04:01
原创
1045人浏览过

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

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

回复内容:

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

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

<code>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页</code>
登录后复制

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

立即学习PHP免费学习笔记(深入)”;

文赋Ai论文
文赋Ai论文

专业/高质量智能论文AI生成器-在线快速生成论文初稿

文赋Ai论文 37
查看详情 文赋Ai论文

  1. 在文章表里面加个字段叫评论数,然后每次有这篇文章新的评论就同时把它加1,然后根据这个字段排序即可

  2. 如果只拿文章ID的排序,可以在评论表里面这样做:

<code>select post_id from comment group by post_id order by count(1) desc limit 0, 10;</code>
登录后复制

其中post_id是文章ID,comment是评论表,这个语句拿到评论数最多的前10篇文章ID

相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号