Heim >Datenbank >MySQL-Tutorial >Warum gibt meine MySQL COUNT()-Abfrage immer mindestens 1 Kommentar zurück?

Warum gibt meine MySQL COUNT()-Abfrage immer mindestens 1 Kommentar zurück?

Linda Hamilton
Linda HamiltonOriginal
2024-12-01 16:32:14255Durchsuche

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

Kommentare mit der IF-Bedingung von MySQL zählen

Problem:

Sie haben eine Abfrage erstellt, um genehmigte Kommentare für Nachrichten zu zählen Artikel, es wird jedoch immer eine Mindestanzahl von 1 zurückgegeben, auch für Artikel ohne Genehmigung Kommentare.

Lösung:

Um dieses Problem zu beheben, ersetzen Sie in Ihrer Abfrage die Funktion COUNT() durch die Funktion SUM(). SUM() akkumuliert Werte und stellt so eine genaue Anzahl genehmigter Kommentare sicher.

Hier ist die überarbeitete Abfrage:

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

Durch die Verwendung von SUM() berechnet die Abfrage jetzt genau die Anzahl genehmigter Kommentare jedem Nachrichtenartikel zugeordnet.

Das obige ist der detaillierte Inhalt vonWarum gibt meine MySQL COUNT()-Abfrage immer mindestens 1 Kommentar zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn