在 MySQL 查詢中使用 IF 條件統計評論
在某些場景下,需要根據預定義條件。例如,您可能需要計算與已批准顯示的新聞文章相關的評論數。然而,當嘗試使用 MySQL 中的 COUNT() 函數完成此任務時,會出現一個常見問題。
COUNT() 的問題
COUNT() 函數MySQL 中傳回符合指定條件的行數。但是,在計算特定實例(例如已核准的註解)時,即使不存在符合的行,透過指定預設值 1 也可能會產生不準確的結果。
要解決此問題並獲得精確的計數,建議使用 SUM() 函數代替 COUNT()。
解決方案使用SUM()
SUM() 函數透過將表中所有行的指定表達式的值求和來運算。與 IF 條件結合使用時,它可以準確地統計滿足特定條件的實例數量。
例如,以下MySQL 查詢利用SUM() 函數來統計新聞文章的核准註解:
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
透過使用SUM() 函數,此查詢可確保註解列準確顯示已核准評論的數量,從而防止將預設值1 錯誤地分配給具有以下內容的行:沒有匹配的評論。
以上是如何使用 SUM() 準確統計 MySQL 查詢中的條件實例?的詳細內容。更多資訊請關注PHP中文網其他相關文章!