Maison > base de données > tutoriel mysql > Comment compter avec précision les instances conditionnelles dans les requêtes MySQL à l'aide de SUM() ?

Comment compter avec précision les instances conditionnelles dans les requêtes MySQL à l'aide de SUM() ?

Patricia Arquette
Libérer: 2024-11-28 09:29:11
original
800 Les gens l'ont consulté

How to Accurately Count Conditional Instances in MySQL Queries Using SUM()?

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

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!

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