ホームページ >データベース >mysql チュートリアル >mysqlストアドプロシージャ判定

mysqlストアドプロシージャ判定

WBOY
WBOYオリジナル
2023-05-20 13:39:382507ブラウズ

MySQL ストアド プロシージャの判断: IF、CASE、条件文を使用して論理的な判断を行う

MySQL ストアド プロシージャは、MySQL でのビジネス ロジック実装のための重要なツールの 1 つであり、データのバッチ処理と変換、計算が可能です。や分析など。 MySQL ストアド プロシージャでは、後続の操作をどのように実行するかを決定するために、データに対して論理的な判断を行う必要があることがよくあります。この記事では、MySQL ストアド プロシージャで論理的な判断を行うための IF、CASE、条件文の使用方法を紹介します。

1. IF ステートメント

IF ステートメントは、MySQL ストアド プロシージャで最も一般的に使用される条件ステートメントであり、true または false の条件に基づいてさまざまな操作を実行するために使用されます。その構文形式は次のとおりです。

IF (condition) THEN
    statements;
ELSEIF (condition) THEN
    statements;
ELSE
    statements;
END IF;

このうち、condition は判定文を表し、statement は実行する必要がある文ブロックを表します。 IF ステートメントでは、条件が true の場合は IF ブロックが実行され、条件が false の場合は ELSEIF または ELSE ブロックが実行されます。 ELSEIF ステートメント ブロックは複数存在できますが、それらは IF ステートメント ブロックが false の場合にのみ実行されます。

次は、生徒のスコアが IF ステートメントを通過しているかどうかを判断する例です。

CREATE PROCEDURE check_score(IN score INT)
BEGIN
    IF (score >= 60) THEN
        SELECT 'Pass';
    ELSEIF (score >= 50) THEN
        SELECT 'Makeup Exam';
    ELSE
        SELECT 'Fail';
    END IF;
END;

上の例では、生徒のスコアに基づいて、対応する結果が出力されます。不合格の場合は「不合格」、50点以上60点未満の場合は「追試験」、60点以上の場合は「合格」が出力されます。

2. CASE ステートメント

CASE ステートメントは、MySQL ストアド プロシージャで一般的に使用されるもう 1 つの条件ステートメントです。さまざまな条件に従ってさまざまな操作を実行するためにも使用されます。違いは、CASE ステートメントとの違いです。より複雑な条件判定をサポートします。その構文形式は次のとおりです:

CASE expr
    WHEN value1 THEN
        statements1;
    WHEN value2 THEN
        statements2;
    ...
    ELSE
        statements;
END CASE;

このうち、 expr は WHEN 条件の値と一致するために使用される式または列を表し、 value1、value2... は一致する値を表します (statement1、statement2..)。 . は一致を表します 値に対して実行される操作、ELSE ステートメント ブロックは一致しない場合に実行される操作を表します。 CASE ステートメントには、複数の WHEN 条件を含めることができます。

以下は、CASE ステートメントを通じて生徒の成績を決定する例です。

CREATE PROCEDURE check_level(IN score INT)
BEGIN
    CASE 
        WHEN (score >= 90) THEN SELECT 'Excellent';
        WHEN (score >= 80) THEN SELECT 'Good';
        WHEN (score >= 70) THEN SELECT 'Fair';
        WHEN (score >= 60) THEN SELECT 'Pass';
        ELSE SELECT 'Fail';
    END CASE;
END;

上の例では、生徒の成績に基づいて、対応する成績が出力されます。 90点以上の場合「優」、80点以上90点以下の場合「良」、70点以上80点以下の場合「可」、60点以上70点以下の場合「合格」を出力; 結果が失敗の場合は「Fail」を出力します。

3. 条件文

条件文も MySQL ストアド プロシージャでよく使用される論理判断ツールであり、その構文形式は次のとおりです:

(condition1) AND/OR (condition2) 

このうち、条件 1 と条件 2条件文の2つの判定条件をそれぞれ表します。ANDまたはORを使用して異なる条件を接続できます。ANDは2つの条件を満たす必要があることを意味し、ORは少なくとも1つの条件を満たす必要があることを意味します。

以下は、条件ステートメントを通じて学生が遅刻したかどうかを判断する例です。

CREATE PROCEDURE check_lateness(IN late INT)
BEGIN
    IF (late = 0) OR (late <= 5) THEN
        SELECT 'On Time';
    ELSE
        SELECT 'Late';
    END IF;
END;

上の例では、学生が遅刻していない (つまり、遅刻 = 0)、または遅刻している場合、 5 分以内の遅刻の場合は「定刻通り」と出力し、それ以外の場合は「遅刻」と出力します。

概要

IF、CASE、および条件文は、MySQL ストアド プロシージャでよく使用される論理判断ツールであり、さまざまな条件に基づいてさまざまな操作を実行できます。実際の開発作業では、コードの効率と可読性を向上させるために、特定のビジネス ニーズに基づいてさまざまな判断ステートメントを選択できます。

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

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