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(行が存在しない)であることがわかります。
-
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.
-
MySQLテーブルの単一の列を更新する最良の方法は?
単一の列を更新するには、次の構文のようにUPDATEとSETを使用します- update yourTableName set yourColumnName=yourValue;を更新します まずテーブルを作成しましょう- mysql> create table DemoTable1873 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, FirstName varchar(20) );