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

ストアドプロシージャでIFを使用し、MySQLで選択する方法は?


ストアドプロシージャでIFを使用し、selectステートメントでIF()を使用することもできます。

selectステートメントのIF()

IF() in select statement mysql> select if(0=0,'Hello MySQL','condition is wrong');

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

+------------------------------------------------------+
| if('test'='test','Hello MySQL','condition is wrong') |
+------------------------------------------------------+
| Hello MySQL                                          |
+------------------------------------------------------+
1 row in set (0.00 sec)

状態が悪くなった場合の2番目のケース-

mysql> select if(1=0,'Hello MySQL','condition is wrong');

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

+--------------------------------------------+
| if(1=0,'Hello MySQL','condition is wrong') |
+--------------------------------------------+
| condition is wrong                         |
+--------------------------------------------+
1 row in set (0.00 sec)

ストアドプロシージャの場合

ストアドプロシージャを作成するためのクエリは次のとおりです。ここでは、IFを使用して条件を設定しました-

mysql> DELIMITER //
mysql> CREATE PROCEDURE if_demo(value int)
   BEGIN
      IF 1=value
         THEN SELECT "Hello MySQL";
      ELSE
         SELECT "Wrong Condition";
      END IF;
   END
   //
Query OK, 0 rows affected (0.20 sec)
mysql> DELIMITER ;

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

mysql> call if_demo(1);

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

+-------------+
| Hello MySQL |
+-------------+
| Hello MySQL |
+-------------+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.01 sec)

条件が偽になった場合-

mysql> call if_demo(0);

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

+-----------------+
| Wrong Condition |
+-----------------+
| Wrong Condition |
+-----------------+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.01 sec)

  1. MySQLでの更新中にselectステートメントを使用するにはどうすればよいですか?

    このために、MySQL UPDATEコマンドを使用している間、WHERE句とともにサブクエリを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> Id int,    -> Name varchar(20)    -> ); Query OK, 0 rows affected (0.82 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert int

  2. MySQLストアドプロシージャで区切り文字を正しく使用して値を挿入するにはどうすればよいですか?

    まずテーブルを作成しましょう- mysql> create table DemoTable2028    -> (    -> StudentFirstName varchar(20),    -> StudentLastName varchar(20)    -> ); Query OK, 0 rows affected (0.87 sec) これは、ストアドプロシージャを作成し、値を挿入するためのクエリです(区切り文字を正しく使用して)- mysql> delimiter