Comptage des commentaires avec condition IF dans les requêtes MySQL
Dans certains scénarios, il devient nécessaire de compter des instances spécifiques d'une table de base de données en fonction d'un condition prédéfinie. Par exemple, vous devrez peut-être compter le nombre de commentaires associés aux articles d'actualité dont l'affichage a été approuvé. Cependant, un problème courant survient lorsque vous tentez d'accomplir cette tâche à l'aide de la fonction COUNT() dans MySQL.
Le problème avec COUNT()
La fonction COUNT() dans MySQL renvoie le nombre de lignes qui répondent à une condition spécifiée. Cependant, lors du comptage d'instances spécifiques, telles que des commentaires approuvés, cela peut donner des résultats inexacts en attribuant une valeur par défaut de 1, même s'il n'existe aucune ligne correspondante.
Pour résoudre ce problème et obtenir un décompte précis, il est conseillé pour utiliser la fonction SUM() au lieu de COUNT().
Solution utilisant SUM()
Le La fonction SUM() fonctionne en résumant les valeurs d’une expression spécifiée sur toutes les lignes d’un tableau. Lorsqu'elle est combinée avec une condition IF, elle peut compter avec précision le nombre d'instances qui répondent à un critère particulier.
Par exemple, la requête MySQL suivante exploite la fonction SUM() pour compter les commentaires approuvés pour les articles d'actualité :
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 employant la fonction SUM(), cette requête garantit que la colonne des commentaires affiche avec précision le nombre de commentaires approuvés, empêchant ainsi l'attribution erronée d'une valeur par défaut de 1 aux lignes sans correspondance. 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!