Maison > base de données > tutoriel mysql > le corps du texte

Comment puis-je compter correctement les commentaires approuvés dans MySQL pour éviter un minimum de 1 ?

Barbara Streisand
Libérer: 2024-11-28 03:48:13
original
858 Les gens l'ont consulté

How Can I Correctly Count Approved Comments in MySQL to Avoid a Minimum of 1?

Résoudre le problème du nombre de commentaires avec la condition IF dans la requête MySQL

Vous êtes confronté à un problème où votre requête MySQL renvoie systématiquement un nombre minimum de commentaires de 1 même en l’absence de commentaires approuvés pour certains articles de presse. Pour remédier à cela, explorons une approche révisée.

Votre requête utilise la fonction count() pour comptabiliser les commentaires approuvés, mais elle génère intrinsèquement une valeur minimale de 1 pour chaque ligne, quelle que soit l'existence du commentaire. La solution réside dans l'utilisation de la fonction sum() à la place.

Considérez la requête modifiée suivante :

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
Copier après la connexion

Dans cette version révisée, nous utilisons la fonction sum() dans if() expression conditionnelle de l’instruction. Il calcule le nombre total de 1 pour les commentaires approuvés et de 0 pour les commentaires non approuvés, renvoyant ainsi un décompte précis des commentaires approuvés pour 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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal