MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLのすべてのレコードを取得するには、COUNT(*)を使用する必要がありますか?


列にnull以外のようなすべての値が必要な場合は、count(*)を使用してください。これは、count()メソッドを使用するよりも高速です。

count(*)を使用する構文は次のとおりです-

select count(*) as anyVariableName from yourTableName;

上記の概念を理解するために、最初にテーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです-

mysql> create table CountingDemo
   -> (
   -> BookId int
   -> );
Query OK, 0 rows affected (0.60 sec)

挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。クエリは次のとおりです-

mysql> insert into CountingDemo values(100);
Query OK, 1 row affected (0.13 sec)

mysql> insert into CountingDemo values();
Query OK, 1 row affected (0.17 sec)

mysql> insert into CountingDemo values(200);
Query OK, 1 row affected (0.12 sec)

mysql> insert into CountingDemo values(300);
Query OK, 1 row affected (0.16 sec)

mysql> insert into CountingDemo values();
Query OK, 1 row affected (0.12 sec)

selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです-

mysql> select *from CountingDemo;

出力

+--------+
| BookId |
+--------+
|    100 |
|   NULL |
|    200 |
|    300 |
|   NULL |
+--------+
5 rows in set (0.00 sec)

列にnull値がないとすると、count(*)とcount()は同じ結果になります。

しかし、この例では、BookId列にいくつかのnull値があります。この場合、count(*)とcount()の両方で異なる結果が得られます。

count(*)-

を使用するクエリは次のとおりです。
mysql> select count(*) as AllValue from CountingDemo;

出力

+----------+
| AllValue |
+----------+
|        5 |
+----------+
1 row in set (0.00 sec)

彼女はcount()を使用するクエリであり、null値のカウントを考慮しないため、別の結果が得られます。クエリは次のとおりです-

mysql> select count(BookId) as AllvalueWhichisNotnull from CountingDemo;

出力

+------------------------+
| AllvalueWhichisNotnull |
+------------------------+
|                      3 |
+------------------------+
1 row in set (0.00 sec)

  1. 1つのMySQLクエリで特定のレコード(重複)の発生をカウントします

    このためには、集計関数COUNT()とGROUP BYを使用して、これらの特定のレコードをオカレンス用にグループ化します。まずテーブルを作成しましょう- mysql> create table DemoTable (    StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,    StudentSubject varchar(40) ); Query OK, 0 rows affected (5.03 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql>

  2. MySQLで指定された2つの日付の間のレコードの合計を取得します

    これには、BETWEENキーワードを使用します。まず、-を作成しましょう mysql> create table DemoTable1444    -> (    -> Value int,    -> PurchaseDate datetime    -> ); Query OK, 0 rows affected (0.45 sec) insert-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1444 valu