MySQL データベースでは、ストアド プロシージャは 1 つ以上の SQL ステートメントで構成されるプログラムであり、これらのプログラムはコンパイルされ、再利用のためにデータベースに保存されます。ストアド プロシージャはパラメータを受け入れ、値を返すことができます。この記事では、mysql ストアド プロシージャの戻り値に焦点を当てます。
MySQL ストアド プロシージャの戻り値は、プログラムの実行の成功または失敗を判断したり、プログラムの実行結果を呼び出し元に返すために使用できます。 MySQL では、ストアド プロシージャからの戻り値には、整数、浮動小数点数、文字列の 3 種類があります。
整数型の戻り値
mysql では、RETURN ステートメントを使用して整数型の戻り値を返すことができます。整数型の戻り値は、0、1、2 などの任意の整数値です。ストアド プロシージャが正常に実行された場合は 0 が返され、ストアド プロシージャが失敗した場合は 0 以外の整数値が返されます。カスタムの整数値を返したい場合は、RETURN ステートメントを使用してストアド プロシージャで値を指定できます。
次に、整数型の戻り値を返すストアド プロシージャの例を示します。
DELIMITER $$
CREATE PROCEDURE test()
BEGIN
DECLARE res INT ;
SELECT COUNT(*) INTO res FROM users;
IF res>0 THEN
SELECT res;
ELSE
SELECT 0;
END IF;
RETURN 1;
END $$
DELIMITER ;
上記の例では、ストアド プロシージャ テストは users テーブル内のレコード数をカウントし、結果を res 変数に保存します。 res が 0 より大きい場合は結果を出力し、それ以外の場合は 0 を出力します。ストアド プロシージャの実行後の戻り値は 1 です。
浮動小数点型の戻り値
mysql のストアド プロシージャは浮動小数点型の戻り値もサポートしています。浮動小数点値を返すには、RETURN ステートメントを使用します。以下は、float 型の戻り値を返すストアド プロシージャの例です。
DELIMITER $$
CREATE PROCEDURE test2()
BEGIN
DECLARE res FLOAT;
SELECT SUM (金額) INTO res FROM 注文;
IF res>0 THEN
SELECT res;
ELSE
SELECT 0;
END IF;
RETURN 1.0;
END$$
DELIMITER ;
上記の例では、ストアド プロシージャ test2 は、orders テーブル内のすべての注文の合計金額を計算し、結果を res 変数に保存します。 res が 0 より大きい場合は結果を出力し、それ以外の場合は 0 を出力します。ストアド プロシージャの実行後の戻り値は 1.0 です。
文字列型の戻り値
mysql のストアド プロシージャは文字列型の戻り値もサポートしています。文字列値を返すには、RETURN ステートメントを使用します。次に、文字列型の戻り値を返すストアド プロシージャの例を示します。
DELIMITER $$
CREATE PROCEDURE test3()
BEGIN
DECLARE res VARCHAR(100);
SELECT name INTO res FROM users WHERE id=1;
IF res IS NOT NULL THEN
SELECT res;
ELSE
SELECT 'unknown';
END IF;
RETURN ' Hello, World ';
END$$
DELIMITER ;
上記の例では、ストアド プロシージャ test3 が id=1 のユーザー名を users テーブルから取得し、結果を次の場所に保存します。 res変数。 res が空でない場合は結果が出力され、それ以外の場合は「unknown」が出力されます。ストアド プロシージャが実行されると、戻り値は「Hello, World」になります。
概要
MySQL ストアド プロシージャの戻り値は、プログラムの実行の成功または失敗を判断したり、プログラムの実行結果を呼び出し元に返すために使用できます。 MySQL では、ストアド プロシージャからの戻り値には、整数、浮動小数点数、文字列の 3 種類があります。戻り値を返すには、RETURN ステートメントを使用して適切な値を指定します。
上記は、mysql ストアド プロシージャの戻り値の詳細な紹介です。ストアドプロシージャはSQL文の実行効率やコードの再利用率を向上させることができるため、ストアドプロシージャを学習することはデータベース開発の効率向上に非常に役立ちます。
以上がmysqlストアドプロシージャの戻り値について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。