Bagaimanakah Saya Boleh Mengira Komen Yang Diluluskan dengan Benar dalam MySQL untuk Mengelakkan Minimum 1?

Barbara Streisand
Lepaskan: 2024-11-28 03:48:13
asal
858 orang telah melayarinya

How Can I Correctly Count Approved Comments in MySQL to Avoid a Minimum of 1?

Menyelesaikan Isu Pengiraan Komen dengan Keadaan IF dalam Pertanyaan MySQL

Anda menghadapi masalah di mana pertanyaan MySQL anda secara konsisten mengembalikan kiraan ulasan minimum daripada 1 walaupun dalam ketiadaan komen yang diluluskan untuk artikel berita tertentu. Untuk membetulkan perkara ini, mari kita terokai pendekatan yang disemak.

Pertanyaan anda menggunakan fungsi count() untuk mengira ulasan yang diluluskan, tetapi ia sememangnya menghasilkan nilai minimum 1 untuk setiap baris, tanpa mengira kewujudan ulasan. Penyelesaiannya terletak pada penggunaan fungsi sum() sebaliknya.

Pertimbangkan pertanyaan yang diubah suai berikut:

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
Salin selepas log masuk

Dalam versi yang disemak ini, kami menggunakan fungsi sum() dalam if() ungkapan bersyarat pernyataan. Ia mengira kiraan agregat 1 untuk ulasan yang diluluskan dan 0 untuk ulasan yang tidak diluluskan, dengan berkesan mengembalikan kiraan tepat ulasan yang diluluskan untuk setiap artikel berita.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Komen Yang Diluluskan dengan Benar dalam MySQL untuk Mengelakkan Minimum 1?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan