Zählen mit IF-Bedingung in MySQL-Abfrage
Ihr Ziel ist es, die Anzahl der genehmigten Kommentare für Nachrichtenartikel abzurufen. Ihre aktuelle Abfrage gibt jedoch einen Mindestwert von 1 für die Kommentarspalte zurück, auch wenn für einen bestimmten Artikel keine Kommentare vorhanden sind.
Um dieses Problem zu beheben, tauschen Sie die Funktion count() durch sum() aus Ihre Anfrage. Lassen Sie uns auf die Einzelheiten eingehen:
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
Wie es funktioniert:
Die sum()-Funktion wertet jeden TRUE-Ausdruck als 1 und FALSE-Ausdrücke als 0 aus und gibt effektiv zurück die Gesamtzahl der genehmigten Kommentare.
Diese aktualisierte Abfrage liefert jetzt genaue Zählungen und zeigt, ob jeder Nachrichtenartikel genehmigte Kommentare hat oder nicht.
Das obige ist der detaillierte Inhalt vonWie kann man genehmigte Kommentare in MySQL mit SUM() genau zählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!