在 MySQL 查询中使用 IF 条件统计评论
在某些场景下,需要根据预定义条件。例如,您可能需要计算与已批准显示的新闻文章相关的评论数。然而,当尝试使用 MySQL 中的 COUNT() 函数完成此任务时,会出现一个常见问题。
COUNT() 的问题
COUNT() 函数MySQL 中返回满足指定条件的行数。但是,在计算特定实例(例如批准的评论)时,即使不存在匹配的行,通过分配默认值 1 也可能会产生不准确的结果。
要解决此问题并获得精确的计数,建议使用 SUM() 函数代替 COUNT()。
解决方案使用SUM()
SUM() 函数通过对表中所有行的指定表达式的值求和来进行运算。与 IF 条件结合使用时,它可以准确地统计满足特定条件的实例数量。
例如,以下 MySQL 查询利用 SUM() 函数来统计新闻文章的批准评论:
SELECT ccc_news . * , SUM(if(ccc_news_comments.id = 'approved', 1, 0)) AS comments FROM ccc_news LEFT JOIN ccc_news_comments ON ccc_news_comments.news_id = ccc_news.news_id WHERE `ccc_news`.`category` = 'news_layer2' AND `ccc_news`.`status` = 'Active' GROUP BY ccc_news.news_id ORDER BY ccc_news.set_order ASC LIMIT 20
通过使用 SUM() 函数,此查询可确保评论列准确显示已批准评论的数量,从而防止将默认值 1 错误地分配给具有以下内容的行:没有匹配的评论。
以上是如何使用 SUM() 准确统计 MySQL 查询中的条件实例?的详细内容。更多信息请关注PHP中文网其他相关文章!