Comptage des commentaires avec des conditions IF dans les requêtes MySQL
Déterminez le nombre de commentaires approuvés pour chaque article d'actualité en tirant parti des conditions SQL IF.
Problème :
Une requête précédente a récupéré un commentaire compte, mais même lorsqu'il n'y avait aucun commentaire approuvé associé à un article d'actualité, il renvoyait une valeur minimale de 1.
Solution :
Pour corriger ce problème, remplacez la fonction count() avec la fonction sum() dans la condition IF. Voici la requête révisée :
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
En utilisant la fonction sum(), la requête compte désormais correctement le nombre de commentaires approuvés pour chaque article d'actualité, renvoyant 0 lorsqu'il n'y a aucun commentaire approuvé. Cela garantit des résultats précis et cohérents pour le comptage des commentaires.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!