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

ストアドプロシージャに条件付きMySQLクエリを実装しますか?


条件付きMySQLクエリの場合、ストアドプロシージャでIFELSEの概念を使用できます。まずテーブルを作成しましょう-

mysql> create table DemoTable1
   (
   Id int
   );
Query OK, 0 rows affected (0.62 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable1 values(10);
Query OK, 1 row affected (0.19 sec)

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

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

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select *from DemoTable1;

これにより、次の出力が生成されます-

+------+
| Id   |
+------+
| 10   |
| 20   |
| 30   |
+------+
3 rows in set (0.00 sec)

以下は、2番目のテーブルを作成するためのクエリです。

mysql> create table DemoTable2
   (
   Id int
   );
Query OK, 0 rows affected (1.07 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable2 values(40);
Query OK, 1 row affected (0.13 sec)

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

mysql> insert into DemoTable2 values(60);
Query OK, 1 row affected (0.11 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select *from DemoTable2;

これにより、次の出力が生成されます-

+------+
| Id   |
+------+
| 40   |
| 50   |
| 60   |
+------+
3 rows in set (0.00 sec)

以下は、条件付きMySQLクエリのストアドプロシージャを作成するためのクエリです。

mysql> DELIMITER //
   mysql> CREATE PROCEDURE Conditional_Query(id int)
   BEGIN
      IF id >=40 THEN
         Select * from DemoTable2;
     ELSE
        Select * from DemoTable1;
     END IF;
   END
   //
   Query OK, 0 rows affected (0.21 sec)
mysql> DELIMITER ;

これで、CALLコマンドを使用してストアドプロシージャを呼び出すことができます-

mysql> call Conditional_Query(100);

これにより、次の出力が生成されます-

+------+
| Id   |
+------+
| 40   |
| 50   |
| 60   |
+------+
3 rows in set (0.00 sec)

Query OK, 0 rows affected (0.03 sec)

もう一度呼び出して、別の値を渡します-

mysql> call Conditional_Query(13);

これにより、次の出力が生成されます-

+------+
| Id   |
+------+
| 10   |
| 20   |
| 30   |
+------+
3 rows in set (0.00 sec)

Query OK, 0 rows affected (0.02 sec)

  1. MySQLのストアドプロシージャにIfelseを実装しますか?

    if-elseを実装するための構文は、次のとおりです- if yourCondition then      yourStatement1;     else     yourStatement2;     end if ; ストアドプロシージャのif-elseに関する上記の概念を理解するために、ストアドプロシージャを作成してみましょう- mysql> delimiter // mysql> create procedure If_else_stored_demo(value int) &n

  2. MySQLストアドプロシージャ内に動的SQLクエリを実装しますか?

    ストアドプロシージャでの動的SQLクエリの場合は、PREPARESTATEMENTの概念を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable2033    -> (    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,    -> Name varchar(20)    -> ); Query OK, 0 rows affected (1.61 sec) 挿入コマンド-を使用して、テーブ