Masalah:
Anda telah membuat pertanyaan untuk mengira komen yang diluluskan untuk berita artikel, tetapi ia sentiasa mengembalikan kiraan minimum 1, walaupun untuk artikel tanpa diluluskan komen.
Penyelesaian:
Untuk menangani isu ini, gantikan fungsi COUNT() dengan fungsi SUM() dalam pertanyaan anda. SUM() mengumpul nilai, memastikan kiraan tepat bagi ulasan yang diluluskan.
Berikut ialah pertanyaan yang disemak:
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
Dengan menggunakan SUM(), pertanyaan kini mengira kiraan ulasan yang diluluskan dengan tepat dikaitkan dengan setiap artikel berita.
Atas ialah kandungan terperinci Mengapa Pertanyaan MySQL COUNT() Saya Sentiasa Kembali Sekurang-kurangnya 1 Komen?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!