Maison >base de données >tutoriel mysql >Pourquoi ma requête MySQL COUNT() renvoie-t-elle toujours au moins 1 commentaire ?
Problème :
Vous avez créé une requête pour compter les commentaires approuvés pour les actualités articles, mais il renvoie toujours un nombre minimum de 1, même pour les articles sans autorisation commentaires.
Solution :
Pour résoudre ce problème, remplacez la fonction COUNT() par la fonction SUM() dans votre requête. SUM() accumule les valeurs, garantissant un nombre précis de commentaires approuvés.
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 SUM(), la requête calcule désormais avec précision le nombre de commentaires approuvés. associé à chaque article d'actualité.
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!