問題:
ニュースの承認されたコメントをカウントするクエリを作成しましたただし、承認されていない記事であっても、常に最小数 1 が返されます。コメント。
解決策:
この問題に対処するには、クエリ内の COUNT() 関数を SUM() 関数に置き換えます。 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() を使用することで、クエリは承認されたコメントの数を正確に計算するようになりました。各ニュース記事に関連付けられています。
以上がMySQL COUNT() クエリが常に少なくとも 1 つのコメントを返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。