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

WBOY
リリース: 2022-01-12 10:49:28
オリジナル
8732 人が閲覧しました

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!