ホームページ  >  記事  >  データベース  >  mysqlストアドプロシージャでifを使用する方法

mysqlストアドプロシージャでifを使用する方法

WBOY
WBOYオリジナル
2022-01-12 10:49:288653ブラウズ

mysql では、if ステートメントは、式の特定の条件または値の結果に基づいて一連の SQL ステートメントを実行するために使用されます。構文は、"IF 式 THEN ステートメント;END IF;"; です。 TRUE と評価されると、ステートメント ステートメントが実行されます。

mysqlストアドプロシージャでifを使用する方法

このチュートリアルの動作環境: Windows10 システム、mysql8.0.22 バージョン、Dell G3 コンピューター。

mysql ストアド プロシージャで if を使用する方法

MySQL IF ステートメントを使用すると、特定の条件または値の結果に基づいてステートメントを実行できます。式のグループ SQL ステートメント。 MySQL で式を作成するには、リテラル、変数、演算子、さらには関数を組み合わせることができます。式は、TRUE、FALSE、または NULL の 3 つの値のいずれかを返すことができます。

MySQL IF ステートメントの構文

次に、IF ステートメントの構文について説明します。

IF expression THEN 
   statements;
END IF;

式 (式) が TRUE と評価される場合、ステートメント ステートメントが実行されます。それ以外の場合、制御フローは END IF の後の次のステートメントに移ります。

次のフローチャートは、IF ステートメントの実行プロセスを示しています:

mysqlストアドプロシージャでifを使用する方法

MySQL IF ELSE ステートメント

式の計算結果が FALSE のときにステートメントを実行するには、以下に示すように IF ELSE ステートメントを使用してください。

IF expression THEN
   statements;
ELSE
   else-statements;
END IF;

次のフローチャートは、IF ELSE ステートメントの実行プロセスを示しています。

mysqlストアドプロシージャでifを使用する方法

MySQL IF ELSEIF ELSE ステートメント

複数の式に基づいて条件付きでステートメントを実行する場合は、次のように IF ELSEIF ELSE ステートメントを使用します。 :

IF expression THEN
   statements;
ELSEIF elseif-expression THEN
   elseif-statements;
...
ELSE
   else-statements;
END IF;

If 式 式が TRUE と評価された場合、IF 分岐内のステートメントが実行されます。式が FALSE と評価された場合、elseif_expression が TRUE と評価された場合、MySQL は elseif-expression を実行します。 ELSE 分岐が実行されます。else-statements ステートメント。具体的なプロセスは次のとおりです。

mysqlストアドプロシージャでifを使用する方法

MySQL IF ステートメントの例

次の例は、IF ESLEIF ELSE ステートメントの使用方法を示しています。 GetCustomerLevel() ストアド プロシージャは、顧客番号と顧客レベルの 2 つのパラメータを受け取ります。

まず、顧客テーブルから信用限度額を取得します。

次に、信用限度額に基づいて、顧客レベル (プラチナ、ゴールド、シルバー) を決定します。

パラメータ p_customerlevel には顧客のレベルが保存され、呼び出し側プログラムによって使用されます。

USE yiibaidb;
DELIMITER $$
CREATE PROCEDURE GetCustomerLevel(
    in  p_customerNumber int(11), 
    out p_customerLevel  varchar(10))
BEGIN
    DECLARE creditlim double;
    SELECT creditlimit INTO creditlim
    FROM customers
    WHERE customerNumber = p_customerNumber;
    IF creditlim > 50000 THEN
 SET p_customerLevel = 'PLATINUM';
    ELSEIF (creditlim <= 50000 AND creditlim >= 10000) THEN
        SET p_customerLevel = &#39;GOLD&#39;;
    ELSEIF creditlim < 10000 THEN
        SET p_customerLevel = &#39;SILVER&#39;;
    END IF;
END$$

次のフローチャートは、顧客レベルを決定するロジックを示しています

mysqlストアドプロシージャでifを使用する方法

推奨される学習:

mysql ビデオ チュートリアル

以上がmysqlストアドプロシージャでifを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。