ホームページ >データベース >mysql チュートリアル >COUNT(*) と COUNT(column_name): 違いは何ですか? それぞれをいつ使用する必要がありますか?
COUNT(*) と COUNT(column_name) の違いを理解する
SQL クエリを使用する場合、次の違いを理解することが重要です。 COUNT(*) および COUNT(column_name) により正確さを確保します。 results.
COUNT(*)
COUNT(*) は、NULL 値が含まれているかどうかに関係なく、結果セット内のすべての行をカウントします。これは、クエリ条件を満たすすべての行を考慮するため、最も包括的な数です。
COUNT(column_name)
COUNT(column_name) は、指定された列が NULL ではありません。この関数は、指定された列の欠損値を持つ行を無視します。
パフォーマンスへの影響
COUNT() がある場合、COUNT(column_name) よりも計算量が多くなる可能性があります。テーブルには NULL 値が多数あります。 COUNT() は関係なく各行をチェックする必要があるため、このようなシナリオではパフォーマンスが遅くなる可能性があります。
COUNT(*) の代替
COUNT(1) は次のとおりです。 COUNT(*) の代わりに、合計行数も返します。ただし、他の列の値に関係なく、常に NULL 以外の値に評価されます。
実験的デモンストレーション
結果の違いを説明するために、次の表を考慮してください。クエリ:
CREATE TABLE table1 (x INT NULL); INSERT INTO table1 (x) VALUES (1), (2), (NULL); SELECT COUNT(*) AS a, COUNT(x) AS b, COUNT(1) AS c FROM table1;
結果:
a b c 3 2 3
ご覧のとおり、COUNT() はすべての行をカウントするため 3 を返しますが、COUNT( x) は、NULL 値の行を除いて 2 を返します。 COUNT(1) は COUNT() と区別できませんが、やはり 3 を返します。
以上がCOUNT(*) と COUNT(column_name): 違いは何ですか? それぞれをいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。