MySQL ストアド プロシージャで if ステートメントを使用する詳細な例

MySQL ストアド プロシージャで if ステートメントを使用する詳細な例

この記事では、例を使用して、MySQL ストアド プロシージャでの if ステートメントの使用方法を説明します。ご参考までに、詳細は以下の通りです。

MySQL の IF ステートメントを使用すると、特定の条件または式の値の結果に基づいて一連の SQL ステートメントを実行できるため、MySQL でテキスト、変数、演算子、さらには関数と組み合わせることができる式を作成する必要があります。式は、TRUE、FALSE、NULL の 3 つの値のいずれかを返すことができます。文法構造を見てみましょう:

IF式THEN
  声明;
終了の場合;

上記の式が TRUE と評価された場合、ステートメントが実行され、それ以外の場合は制御フローは END IF の後の次のステートメントに渡されます。 IF ステートメントの実行プロセスを見てみましょう。

IF ELSE ステートメントの構文を見てみましょう。

IF式THEN
  声明;
それ以外
  else ステートメント;
終了の場合;

ここで、IF ELSE ステートメントの実行プロセスを見てみましょう。

複数の式に基づいて条件付きでステートメントを実行する場合は、IF ELSE IF ELSE ステートメントを使用します。その構文構造は次のとおりです。

IF式THEN
  声明;
ELSEIF elseif式 THEN
  elseif ステートメント;
...
それ以外
  else ステートメント;
終了の場合;

式が TRUE と評価された場合、IF ブランチ内のステートメントが実行されます。式が FALSE と評価され、elseif_expression が TRUE と評価された場合、mysql は elseif-expression を実行し、それ以外の場合は ELSE ブランチ内の else-statements を実行します。具体的な実装プロセスを見てみましょう。

次に、IF ESLEIF ELSE ステートメントと GetCustomerLevel() ストアド プロシージャを使用して、顧客番号と顧客レベルの 2 つのパラメーターを受け入れます。まず、GetCustomerLevel() ストアド プロシージャは、顧客テーブルからクレジット限度額を取得する必要があります。次に、クレジット限度額に基づいて、顧客レベル (PLATINUM、GOLD、SILVER) を決定します。パラメータ p_customerlevel は顧客レベルを格納し、呼び出しプログラムによって使用されます。具体的な SQL を見てみましょう。

区切り文字 $$
CREATE PROCEDURE GetCustomerLevel(
  p_customerNumber int(11)では、
  出力 p_customerLevel varchar(10))
始める
  creditlim double を宣言します。
  クレジット制限をクレジット制限に選択する
  お客様から
  ここで、顧客番号 = p_顧客番号;
  クレジット限度額 > 50000 の場合
 p_customerLevel を 'PLATINUM' に設定します。
  ELSEIF (creditlim <= 50000 AND creditlim >= 10000) の場合
    p_customerLevel を 'GOLD' に設定します。
  ELSEIF クレジット制限 < 10000 THEN
    p_customerLevel を 'SILVER' に設定します。
  終了の場合;
終わり$$

顧客レベルを決定するロジックのフローチャートは次のとおりです。

さて、今回の共有はこれですべてです。

MySQL 関連のコンテンツに興味のある読者は、このサイトの次のトピックをチェックしてください: 「MySQL ストアド プロシージャ スキル」、「MySQL 共通関数の概要」、「MySQL ログ操作スキル」、「MySQL トランザクション操作スキルの概要」、および「MySQL データベース ロック関連スキルの概要」

この記事が皆様のMySQLデータベース設計に役立つことを願っています。

以下もご興味があるかもしれません:
  • MySQL ストアド プロシージャの作成、呼び出し、管理の詳細な説明
  • MySQL ストアド プロシージャのクエリ コマンドの概要
  • MySQL ストアド プロシージャの in、out、inout パラメータの例と概要
  • MySQLストアドプロシージャを変更する詳細な手順
  • カーソル ループを使用して、MySQL ストアド プロシージャで一時テーブルを読み取る
  • MySQL ストアド プロシージャ関連の権限変更の問題
  • MySQL ストアド プロシージャ (in、out、inout) の詳細な説明
  • MySQL ストアド プロシージャで月ごとにテーブルを作成する方法
  • MySql ビュー、トリガー、ストアド プロシージャに関する簡単な説明
  • MySQL ストアドプロシージャの長所と短所の分析

<<:  jQueryは画像追従効果を実現します

>>:  Alibaba Cloud Centos7.X で外部にポートを開く方法

推薦する

CSSのclip-pathプロパティを使用して不規則なグラフィックを表示する

clip-path CSS プロパティはクリッピングを使用して要素の表示可能領域を作成します。領域内...

jQueryとCSSを組み合わせてトップに戻る機能を実現

CSS操作 CS $("").css(名前|プロ|[,値|関数]) 位置$(&q...

docker+devpi を使用してローカル pypi ソースをビルドする方法

以前、開発で頻繁に pip ダウンロードを使用する必要がありました。pip ソースを国産ソースに変更...

MySQL の結合フィールドの Concat()

目次1. はじめに2. 本文2.1 フィールドの連結2.2 フィールドでの算術計算の実行1. はじめ...

Vueはソースコード付きのリファレンスライブラリのメソッドを使用します

monaco-editor-vueの公式ソースコードは次のとおりです。インデックス 'mon...

HTML 基本要約推奨事項 (タイトル)

HTML: タイトル見出しは <h1> - <h6> などのタグによって定...

スライド階段効果を実現するjQuery

この記事では、階段スライド効果を実現するためのjQueryの具体的なコードを参考までに紹介します。具...

MySQL におけるユニーク制約と NULL の詳細な説明

序文説明を簡略化するために以前に設定した要件は、他のグループから MQ メッセージを受信し、データベ...

Centos7.X Linux システムに tomcat8 をインストールするためのグラフィック チュートリアル

1. Tomcatのインストールパスを作成する mkdir /usr/local/tomcat 2....

Linux でスレッドを作成するための pthread_create の具体的な使用法

pthread_create関数機能紹介pthread_createはUNIX環境のスレッド作成関数...

vue-cli4.5.xはプロジェクトを素早く構築します

1. vue-cliをインストールする vue.js で vue.js を実行します。 2. プロジ...

Vue プロジェクトで Baidu Map API を使用する方法

目次1. Baidu Map Open Platformにアカウントを登録してログインする2. 必要...

MySQL 単一テーブルクエリの例の詳細な説明

1. データを準備するこのテーブルでは次の操作が実行されます 学生テーブルを作成 ( id int ...

CSS3は、欠けた角の長方形、折り畳まれた角の長方形、欠けた角の境界線を実装しています。

序文数日前、偶然、コーナーの四角形が欠落している機能に遭遇しました。最初に頭に浮かんだのは、必要な場...

Node.js における npx コマンドの使用法とシナリオ分析

npx 使用チュートリアル今晩、 Vue-Cli勉強していたところ、ふと最新の@4.xxバージョンを...