MySQL ストアド プロシージャ return
MySQL ストアド プロシージャは、MySQL データベース内で実行できるプログラムで、入力パラメータを受け取り、一連の操作を実行して結果を返すことができます。 SQL ステートメントとは異なり、ストアド プロシージャはプリコンパイルして MySQL データベースに保存できるため、プログラムの実行効率が向上します。
ストアド プロシージャは通常、複雑なビジネス ロジックの処理に使用され、データの送信と処理時間を短縮し、実行効率を向上させることができます。ストアド プロシージャを使用すると、アプリケーション開発時のセキュリティと保守性も向上します。
MySQL ストアド プロシージャは、複雑な結果セットだけでなく、単純な整数、文字列、日付と時刻など、さまざまな種類の結果を返すことができます。この記事では、MySQL ストアド プロシージャを作成して結果を返す方法について説明します。
MySQL ストアド プロシージャの作成
MySQL ストアド プロシージャは次の方法で作成できます。
CREATE PROCEDURE pro_name() BEGIN -- 存储过程的主体 END;
このうち、pro_name はストアド プロシージャの名前であり、BEGIN と BEGIN の間の名前です。 END は、主体となるストアド プロシージャです。
以下は、2 つの整数の合計を返すことができる簡単なストアド プロシージャの例です。
CREATE PROCEDURE add_numbers(IN a INT, IN b INT, OUT sum INT) BEGIN SET sum = a + b; END;
このストアド プロシージャは、2 つの整数パラメータ a と b を受け取り、それらを加算して合計に保存します。変数。ストアド プロシージャが実行されると、sum 変数の値が返されます。
MySQL ストアド プロシージャの実行
MySQL ストアド プロシージャは、次の方法で実行できます。
CALL pro_name();
ここで、pro_name は、実行するストアド プロシージャの名前です。上記の例のストアド プロシージャは、次の方法で実行できます。
CALL add_numbers(1, 2, @sum); SELECT @sum;
上記のコードは、add_numbers ストアド プロシージャを呼び出し、パラメータとして 1 と 2 を a と b に渡し、sum 変数を渡します。出力パラメータとして。次に、SELECT ステートメントを使用して、sum 変数の値を取得できます。
MySQL ストアド プロシージャは結果セットを返す
MySQL ストアド プロシージャは、単純なデータ型を返すだけでなく、結果セットを返すこともできます。結果セットは、複数の行と列を含むことができるデータのコレクションです。 MySQL ストアド プロシージャは、次のメソッドを使用して結果セットを返すことができます。
CREATE PROCEDURE pro_name() BEGIN SELECT columns FROM table WHERE condition; END;
ここで、columns は返される列名、table はクエリされるテーブル名、condition は取得される条件です。
次に、結果セットを返すストアド プロシージャの例を示します。
CREATE PROCEDURE get_users() BEGIN SELECT * FROM users; END;
このストアド プロシージャは、users テーブル内のすべての行と列を返します。このストアド プロシージャは次のコマンドで呼び出すことができます。
CALL get_users();
これにより、users テーブルのすべての行と列が返されます。
MySQL ストアド プロシージャは複数の結果セットを返します
MySQL ストアド プロシージャは複数の結果セットを返すこともできます。複数の結果セットは、1 つ以上の SELECT ステートメントによって返されるデータのコレクションです。
MySQL ストアド プロシージャは、次の方法で複数の結果セットを返すことができます:
CREATE PROCEDURE pro_name() BEGIN SELECT columns FROM table WHERE condition; SELECT columns FROM table WHERE condition; END;
そのうち、columns は返される列名、table はクエリされるテーブル名、condition は取得する条件。
以下は、複数の結果セットを返すストアド プロシージャの例です。
CREATE PROCEDURE get_data() BEGIN SELECT * FROM users; SELECT * FROM orders; END;
このストアド プロシージャは、users テーブルとorders テーブルのすべての行と列を返します。このストアド プロシージャは、次の方法で呼び出すことができます。
CALL get_data();
これにより、2 つの SELECT ステートメントによって返された 2 つの結果セットが返されます。
MySQL ストアド プロシージャは条件ステートメントを使用して結果を返します
MySQL ストアド プロシージャは条件ステートメントを使用して結果を返すことができます。条件文では、IF、CASE、LOOP などの文を使用できます。
次に、IF ステートメントを使用して結果を返すストアド プロシージャの例を示します。
CREATE PROCEDURE get_user_status(IN user_id INT, OUT status VARCHAR(255)) BEGIN DECLARE user_status INT; SELECT user_status INTO user_status FROM users WHERE id = user_id; IF user_status = 0 THEN SET status = 'Inactive'; ELSEIF user_status = 1 THEN SET status = 'Active'; ELSE SET status = 'Unknown'; END IF; END;
このストアド プロシージャは、整数パラメータ user_id を受け取り、ユーザーのステータスに基づいて文字列を返します。ストアド プロシージャは、まず user_id に対応するユーザー ステータスを users テーブルから取得し、それを user_status 変数に保存します。次に、IF ステートメントを使用してユーザーのステータスを確認し、ステータス変数の値を設定します。最後に、ストアド プロシージャはステータス変数を出力パラメータとして返します。
上記は、MySQL ストアド プロシージャによって返される結果の例です。ストアド プロシージャは、MySQL データベースの非常に強力で便利なツールであり、複雑なビジネス ロジックを処理し、アプリケーションの実行効率を向上させることができます。特定のビジネス ニーズに基づいてデータを処理するには、適切なストアド プロシージャを選択する必要があります。
以上がmysqlストアドプロシージャの戻り値の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。