ホームページ >データベース >mysql チュートリアル >mysql ストアド プロシージャでの複数選択の問題

mysql ストアド プロシージャでの複数選択の問題

WBOY
WBOYオリジナル
2016-08-29 08:36:201303ブラウズ

mysql

ストアド プロシージャに複数の選択がありますが、最後の選択のみを結果セットとして返したいのですが、他の選択出力をブロックするにはどうすればよいですか?

返信内容:

mysql でストアド プロシージャの戻り値を取得するには、返す out パラメータを追加できます。

mysqlのストアドプロシージャの例:
手順の作成 addvoucher (
IN ユーザー ID INT、
IN バウチャーID INT、
OUT 結果 INT
)
始めましょう
選択
@endate_a := 終了日 ,@batch_a := バッチ ,@c_count_a := c_count,
@isdead_a := 死んだ

から t_バウチャー
どこ
id = バウチャーID;

自動コミット = 0;
を設定します 存在する場合 (
選択
*

から t_user_voucher トゥヴ、
t_バウチャーテレビ
どこ
tv.id = tuv.voucherid
かつ tv.batch =@batch_a
)それでは

SET result = 1;-- すでに存在します

選択
結果;

@c_count_a > 0 の場合

IF (
TO_DAYS(@endate_a) - TO_DAYS(NOW())
) > 0 では

IF @isdead_a = 1 THEN
t_user_voucher (ユーザー ID、バウチャー ID、isdead) に挿入します
価値観
(ユーザーID、バウチャーID、1);
UPDATE t_voucher SET c_count = c_count-1、ここで id = voteid;

SET 結果 = 0;--成功
終わり;

リーリー

これは私が望む結果ではありません、私の質問に対するあなたの答えは間違っています

1) まず、ストアドプロシージャを変更できますか?最初のいくつかをブロックできるのであれば、必要ないのにクエリを実行する必要はありません。
2) 変更できない場合、最も愚かな方法は、必要な選択の数を数えて、返された結果の結果セットの数を取得することです

まず前の選択肢が必要かどうかを確認し、それから解決策を考えます

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