MySQL クエリの IF 条件を使用したコメントの数
SQL IF を利用して各ニュース記事の承認されたコメントの数を決定する条件。
問題:
前のクエリはコメント数を取得しましたが、ニュース記事に関連付けられた承認されたコメントがない場合でも、最小値 1 を返しました。 .
解決策:
これを修正するにはこの問題を解決するには、IF 条件内の count() 関数を 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() 関数を使用することで、クエリは各ニュース記事の承認されたコメントの数を正しくカウントし、承認されたコメントがない場合は 0 を返すようになりました。これにより、コメントカウントの正確かつ一貫した結果が保証されます。
以上がIF 条件を使用して MySQL で承認されたコメントを正確に数える方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。