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

MySQLテーブルが空かどうかを確認するのに効率的なクエリはどれですか? COUNT(*)対LIMIT?


LEAST()の前後でCOUNT(*)を使用する場合、MySQLは少なくとも1つのインデックスをスキャンするため、LEAST(COUNT(*))を避け、LIMITを使用します。

まず、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです-

mysql> create table ReturnDemo
-> (
-> Id int,
-> Name varchar(10)
-> );
Query OK, 0 rows affected (0.79 sec)

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

mysql> insert into ReturnDemo values(100,'Larry');
Query OK, 1 row affected (0.18 sec)
mysql> insert into ReturnDemo values(101,'Bob');
Query OK, 1 row affected (0.28 sec)
mysql> insert into ReturnDemo values(102,'Sam');
Query OK, 1 row affected (0.17 sec)

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

mysql> select *from ReturnDemo;

出力

+------+-------+
|   Id | Name  |
+------+-------+
|  100 | Larry |
|  101 | Bob   |
|  102 | Sam   |
+------+-------+
3 rows in set (0.00 sec)

以下は、テーブルが空かどうかを確認するためのクエリです-

mysql> SELECT 1 AS Output FROM ReturnDemo LIMIT 1;

以下は、1を表示する出力です。つまり、テーブルは空ではありません-

+--------+
| Output |
+--------+
|      1 |
+--------+
1 row in set (0.00 sec)

  1. テーブル列の重複値の数をカウントするMySQLクエリ

    まずテーブルを作成しましょう- mysql> create table DemoTable(    Data int ); Query OK, 0 rows affected (0.98 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values(60); Query OK, 1 row affected (0.27 sec) mysql> insert into DemoTable values(40); Query OK, 1 row affected (0.1

  2. 1つのMySQLクエリで2つのテーブルフィールドの数を取得しますか?

    このために、SUM()と一緒にCASEステートメントを使用できます。ここでは、従業員の性別の値を持つ列から男性と女性のレコードの数を検索します。まずテーブルを作成しましょう- mysql> create table DemoTable (    EmployeeGender ENUM('Male','Female') ); Query OK, 0 rows affected (0.52 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable valu