MySQLストアドプロシージャでIF…THEN…ENDIFステートメントを使ってレコードを表示する方法
MySQLのストアドプロシージャ内でIF…THEN…ENDIFステートメントを使用すると、条件に応じて異なる処理を実行できます。本記事では、実際にテーブルを作成し、条件分岐を含むストアドプロシージャを定義して、レコードの挿入や表示を切り替える方法を解説します。
1. サンプルテーブルの作成
まず、テーブルを作成します。
mysql> create table DemoTable643 (ClientId int); Query OK, 0 rows affected (0.86 sec)
2. レコードの挿入
次に、INSERTコマンドを使ってテーブルにレコードを追加します。
mysql> insert into DemoTable643 values(1000); Query OK, 1 row affected (0.19 sec)
3. レコードの確認
SELECTステートメントで、テーブル内のすべてのレコードを表示します。
mysql> select *from DemoTable643;
実行すると、以下のような結果が得られます。
+----------+ | ClientId | +----------+ | 1000 | +----------+ 1 row in set (0.00 sec)
4. IF…THEN…ENDIFを使ったストアドプロシージャの作成
ここが本記事のポイントです。IF THEN END IF構文を含むストアドプロシージャを作成するクエリは以下のとおりです。
mysql> DELIMITER //
mysql> CREATE PROCEDURE IF_DEMO(argument int)
BEGIN
DECLARE firstArgument int;
DECLARE secondArgument int;
set firstArgument=0;
set secondArgument=1;
IF firstArgument=argument THEN
insert into DemoTable643 values(2000);
END IF;
IF secondArgument=argument THEN
select *from DemoTable643;
END IF;
END
//
Query OK, 0 rows affected (0.12 sec)
mysql> DELIMITER ;
このストアドプロシージャの動作は以下のとおりです。
- 引数が0の場合:テーブルにClientId「2000」のレコードを挿入します。
- 引数が1の場合:テーブル内のすべてのレコードを表示します。
5. ストアドプロシージャの呼び出し
CALLコマンドを使ってストアドプロシージャを呼び出します。まず、引数に「0」を指定して実行します。
mysql> call IF_DEMO(0); Query OK, 1 row affected (0.17 sec)
これにより、新しいレコードが挿入されました。次に、引数に「1」を指定して呼び出すことで、ストアドプロシージャ内のすべてのレコードを表示します。
mysql> call IF_DEMO(1);
実行結果は以下のとおりです。
+----------+ | ClientId | +----------+ | 1000 | | 2000 | +----------+ 2 rows in set (0.00 sec) Query OK, 0 rows affected (0.03 sec)
まとめ
このように、MySQLのストアドプロシージャではIF…THEN…ENDIFステートメントを活用することで、引数の値に応じてレコードの挿入や表示といった処理を柔軟に分岐させることができます。複数のIF文を組み合わせれば、より複雑な条件分岐のロジックも実装可能です。
-
MySQLで複数のキーワードに一致するレコードを抽出する方法|RLIKE演算子の使い方を解説
RLIKE演算子を使った複数条件でのレコード絞り込み MySQLで複数の単語(キーワード)のいずれかに一致するレコードを抽出したい場合は、RLIKE演算子を使用します。RLIKEは正規表現によるパターンマッチングを行う演算子で、|(パイプ)で区切ることで、OR条件のように複数の値を指定できます。 基本的な構文は以下のとおりです。 SELECT * FROM yourTableName WHERE yourColumnName RLIKE yourValue1|yourValue2; サンプルテーブルの作成 まず、動作確認用のテーブルを作成しましょう。 mysql> CREATE
-
MySQLのストアドプロシージャでテーブルのレコードを表示する方法
MySQLでは、ストアドプロシージャ内にSELECT文を組み込むことで、テーブルのレコードを簡単に表示できます。ストアドプロシージャを活用すると、よく使うクエリを再利用可能な形で保存できるため、作業の効率化につながります。ここでは、実際の手順を順番に解説していきます。1. テーブルを作成するまず、サンプル用のテーブルを作成します。mysql> create table DemoTable1933 ( ClientName varchar(20) ); Query OK, 0 rows affected (0.00 sec)2. レコードを挿入する次に、INSERT