ホームページ >データベース >mysql チュートリアル >`COUNT(*)` は一致がゼロでも常に値を返しますか?

`COUNT(*)` は一致がゼロでも常に値を返しますか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-13 07:20:43375ブラウズ

Does `COUNT(*)` Always Return a Value, Even with Zero Matches?

*`COUNT()` は、一致しない場合でも常に結果が保証されますか? **

次のようなクエリを使用する場合は、COUNT(*) の動作を理解することが重要です。

<code class="language-sql">SELECT COUNT(*) as num FROM table WHERE x = 'y'</code>

クエリの説明

このクエリは、

列が table に等しい x テーブル内の行の数をカウントします。 y

*

答え: はい、`COUNT()` は常に結果を返します**

条件に一致するレコードがない場合に NULL 値を返す MAX、SUM、MIN などの他の集計関数とは異なり、

は常に結果を返します。 COUNT(*)

*

原因: `COUNT()` は NULL 値をカウントします**

この動作の理由は、

が NULL 値を持つ行を含むテーブル内のすべての行を評価するためです。したがって、WHERE 句の条件に一致する行がない場合でも、COUNT(*) は常に 0 を返します。 COUNT(*)

追加メモ:

    一部のデータベースでは、NULL 値を確実に計算するために、
  • の代わりに COUNT(*) を使用する必要がある場合があります。 COUNT()
  • クエリに GROUP BY 句を追加すると、一致するグループがない場合、
  • はゼロ行を返します。 COUNT(*)

例外

このルールにはまれに例外があります。例:

    データベースは、一致する行がない集計関数に対して NULL またはエラーを返すように構成されています。
  • データが破損しているか無効であると、クエリが正しく処理されません。

以上が`COUNT(*)` は一致がゼロでも常に値を返しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。