开发者社区> 问答> 正文

关于php读取评论数,报错

有二个表

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里的触发器去做。



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

展开
收起
一枚小鲜肉帅哥 2020-06-20 21:07:21 2811 0
1 条回答
写回答
取消 提交回答
  • 菜不可及的程序猿

    建议可以用方法 1和2,或者你根据自己实际情况去选择

    2020-06-20 21:07:54
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载