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

MySQLテーブルに行が存在するかどうかをテストするための最良の方法


MySQLテーブルに行が存在するかどうかをテストするには、exists条件を使用します。存在条件はサブクエリで使用できます。行がテーブルに存在する場合はtrueを返し、そうでない場合はfalseを返します。 Trueは1の形式で表され、falseは0として表されます。

理解を深めるために、最初にCREATEコマンドを使用してテーブルを作成します。以下は、テーブルを作成するためのクエリです-

mysql> CREATE table ExistsRowDemo
-> (
-> ExistId int,
-> Name varchar(100)
-> );
Query OK, 0 rows affected (0.53 sec)

テーブルを正常に作成したら、INSERTコマンドを使用していくつかのレコードを挿入します。テーブルにレコードを挿入するクエリ-

mysql> INSERT into ExistsRowDemo values(100,'John');
Query OK, 1 row affected (0.16 sec)

mysql> INSERT into ExistsRowDemo values(101,'Bob');
Query OK, 1 row affected (0.17 sec)

mysql> INSERT into ExistsRowDemo values(103,'Carol');
Query OK, 1 row affected (0.20 sec)

mysql> INSERT into ExistsRowDemo values(104,'David');
Query OK, 1 row affected (0.13 sec)

すべてのレコードを挿入した後、次のようにSELECTコマンドを使用してそれらを表示できます-

mysql> SELECT * from ExistsRowDemo;

以下は出力です-

+---------+-------+
| ExistId | Name  |
+---------+-------+
| 100     | John  |
| 101     | Bob   |
| 103     | Carol |
| 104     | David |
+---------+-------+
4 rows in set (0.00 sec)

テーブルにいくつかのレコードを追加しました。 EXISTS条件を使用して行がテーブルに存在するかどうかを確認する構文は次のとおりです-

SELECT EXISTS(SELECT * FROM yourTableName WHERE yourCondition);

上記のクエリを適用して結果を取得しています-

Note: Firstly, I am considering the condition when row exists in the table. After that, the
condition will be mentioned when a row does not exist.

ケース1

この場合、行が存在する場合の条件を与えています。上記の構文を適用して、行が存在するかどうかをテストしてみましょう。

mysql> SELECT EXISTS(SELECT * from ExistsRowDemo WHERE ExistId=104);

以下は出力です-

+------------------------------------------------------+
| EXISTS(SELECT * from ExistsRowDemo WHERE ExistId=104)|
+------------------------------------------------------+
| 1                                                    |
+------------------------------------------------------+
1 row in set (0.00 sec)

上記のサンプル出力から、取得した値が1であるため、行が存在することは明らかです。これはTRUEを意味します!

ケース2

この場合、行が存在しない場合の条件を説明しています。上記のクエリを適用します。

mysql> SELECT EXISTS(SELECT * from ExistsRowDemo WHERE ExistId=105);

以下は出力です-

+------------------------------------------------------+
| EXISTS(SELECT * from ExistsRowDemo WHERE ExistId=105)|
+------------------------------------------------------+
| 0                                                    |
+------------------------------------------------------+
1 row in set (0.00 sec)

上記の出力から、出力が0、つまりfalse(行が存在しない)であることがわかります。


  1. MySQLプロシージャでテーブルの名前を変更する簡単な方法はありますか?

    はい、RENAMEでALTERコマンドを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1859      (      Id int      ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1859 values(101); Query OK, 1 row affected (0.

  2. MySQLテーブルの単一の列を更新する最良の方法は?

    単一の列を更新するには、次の構文のようにUPDATEとSETを使用します- update yourTableName set yourColumnName=yourValue;を更新します まずテーブルを作成しましょう- mysql> create table DemoTable1873      (      Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,      FirstName varchar(20)      );