Heim >Datenbank >MySQL-Tutorial >Warum gibt meine MySQL COUNT()-Abfrage immer mindestens 1 Kommentar zurück?
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!