gpt4 book ai didi

mysql - 在 MySQL 查询中使用 IF 条件计数

转载 作者:IT老高 更新时间:2023-10-28 12:51:13 29 4
gpt4 key购买 nike

我有两张表,一张是新闻,一张是评论,我想获取状态设置为已批准的评论的计数。

SELECT
ccc_news . *,
count(if(ccc_news_comments.id = 'approved', ccc_news_comments.id, 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

但是这个查询的问题是,对于评论列获取的最小值是 1,无论是否存在与该新闻对应的评论。

任何帮助都将不胜感激。

最佳答案

使用 sum() 代替 count()

试试下面:

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

关于mysql - 在 MySQL 查询中使用 IF 条件计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9798937/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com