mysql - php, 수집된 댓글 수에 따라 기사를 정렬하는 가장 빠른 방법은 무엇입니까?

WBOY
풀어 주다: 2016-08-20 09:04:01
원래의
876명이 탐색했습니다.

현재 모든 데이터를 꺼내서 정리하고 있어 속도가 매우 느립니다. 이제 페이징이 필요합니다.

댓글 총 개수를 합산하는 분야를 고려하지 않고 더 좋은 방법이 없을까요? 기본 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, 수집된 댓글 수에 따라 기사를 정렬하는 가장 빠른 방법은 무엇입니까?

  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.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!