Maison >base de données >tutoriel mysql >Pourquoi ma requête MySQL COUNT() renvoie-t-elle toujours au moins 1 commentaire ?

Pourquoi ma requête MySQL COUNT() renvoie-t-elle toujours au moins 1 commentaire ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-01 16:32:14195parcourir

Why Does My MySQL COUNT() Query Always Return at Least 1 Comment?

Comptage des commentaires avec la condition IF de MySQL

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn