1
回答
关于php读取评论数
注册华为云得mate10,2.9折抢先购!>>>   

有二个表

1.文章表yii_article (id,title)

2.评论表yii_comment(id,content,article_id)  article_id为文章表外健。

页面用php开发,需要读取文章标题,ID,评论数。需要对评论数排序

方法1:

SELECT
    yii_article.id,
    yii_article.title,
    count(yii_comment.id) AS 'comment_count'
FROM
    yii_article
INNER JOIN yii_comment ON yii_article.id = yii_comment.article_id
GROUP BY
    article_id
ORDER BY
    comment_count DESC;



方法2:

SELECT
    yii_article.title,
    count(yii_comment.article_id) AS comment_count
FROM
    yii_article,
    yii_comment
WHERE
    yii_article.id = yii_comment.article_id
GROUP BY
    yii_comment.article_id
ORDER BY
    comment_count DESC 



方法3:

SELECT
    yii_article.id,
    yii_article.title,
    (
        SELECT
            count(0)
        FROM
            yii_comment
        WHERE
            yii_article.id = yii_comment.article_id
    ) AS comment_count
FROM
    yii_article
ORDER BY
    comment_count DESC; 



方法4:

在文章表增加一个字段comment_count放评论数,

然后增加一条评论

UPDATE yii_article SET comment_count = comment_count + 1 WHERE id =XXX;
删除一条评论

UPDATE yii_article SET comment_count = comment_count - 1 WHERE id =XXX;


方法5:

和方法4差不多.在文章表增加一个评论总数字段。然后不用程序去做增加删除。让mysql里的触发器去做。



大家常用的方法是什么。或者你有什么更加优化的方法。

举报
半醉人间
发帖于4年前 1回/307阅

以下是问题补充:

  • @半醉人间 :还有一种方法,就是用视图,在mysql建好一个视图,然后php直接调用 (4年前)
顶部