MySQL で承認されたコメントを正しく数えて、最低 1 件を避けるにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-28 03:48:13
オリジナル
858 人が閲覧しました

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

MySQL クエリの IF 条件によるコメント数の問題を解決する

MySQL クエリが常に最小のコメント数を返すという問題に直面しています。特定のニュース記事に対して承認されたコメントがない場合でも、1 の評価を受けます。これを修正するために、改訂されたアプローチを検討してみましょう。

クエリでは、承認されたコメントを集計するために count() 関数が使用されていますが、コメントの存在に関係なく、本質的に各行の最小値 1 が生成されます。解決策は、代わりに 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
ログイン後にコピー

この改訂版では、if() 内で sum() 関数を利用します。ステートメントの条件式。承認されたコメントの 1 と未承認のコメントの 0 の合計数を計算し、事実上、各ニュース記事の承認されたコメントの正確な集計を返します。

以上がMySQL で承認されたコメントを正しく数えて、最低 1 件を避けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート