Mengira Komen dengan Syarat IF dalam Pertanyaan MySQL
Tentukan kiraan ulasan yang diluluskan untuk setiap artikel berita dengan memanfaatkan keadaan SQL IF.
Masalah:
Sebelumnya ulasan yang diambil pertanyaan dikira, tetapi walaupun tiada ulasan yang diluluskan dikaitkan dengan artikel berita, ia mengembalikan nilai minimum 1.
Penyelesaian:
Untuk membetulkan perkara ini isu, gantikan fungsi count() dengan fungsi sum() dalam keadaan IF. 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 fungsi sum(), pertanyaan itu kini mengira bilangan ulasan yang diluluskan untuk setiap artikel berita dengan betul, mengembalikan 0 apabila tiada ulasan yang diluluskan. Ini memastikan hasil yang tepat dan konsisten untuk pengiraan ulasan.
Atas ialah kandungan terperinci Bagaimana Mengira Komen Yang Diluluskan dengan Tepat dalam MySQL Menggunakan Syarat IF?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!