Heim >Datenbank >MySQL-Tutorial >Mehrere Auswahlprobleme in gespeicherten MySQL-Prozeduren

Mehrere Auswahlprobleme in gespeicherten MySQL-Prozeduren

WBOY
WBOYOriginal
2016-08-29 08:36:201305Durchsuche

mysql

Es gibt mehrere Auswahlen in der gespeicherten Prozedur, aber ich möchte nur die letzte Auswahl als Ergebnismenge zurückgeben. Wie kann ich andere Auswahlausgaben blockieren?

Antwortinhalt:

Um den Rückgabewert der gespeicherten Prozedur in MySQL zu erhalten, können Sie einen Out-Parameter für die Rückgabe hinzufügen.

Beispiel einer gespeicherten Prozedur in MySQL:
VERFAHREN-Zusatzgutschein ERSTELLEN (
IN Benutzer-ID INT,
IN Voucher-ID INT,
OUT-Ergebnis INT
)
BEGINNEN
AUSWÄHLEN
@endate_a := endate ,@batch_a := batch ,@c_count_a := c_count,
@isdead_a := isdead
VON
t_voucher
WO
id = Voucherid;

SET autocommit = 0;
WENN EXISTIERT (
AUSWÄHLEN
*
VON
t_user_voucher tuv,
t_voucher tv
WO
tv.id = tuv.voucherid
UND tv.batch =@batch_a
) DANN

SET result = 1;-- existiert bereits

AUSWÄHLEN
Ergebnis;

SONST

WENN @c_count_a > 0 DANN

WENN (
TO_DAYS(@endate_a) – TO_DAYS(NOW())
) > 0 DANN

WENN @isdead_a = 1 DANN
INSERT INTO t_user_voucher (Benutzer-ID, Gutschein-ID, isdead)
WERTE
(Benutzer-ID, Gutschein-ID, 1);
UPDATE t_voucher SET c_count = c_count-1 wobei id = Voucherid;

SET-Ergebnis = 0;--Erfolg
ENDE;

<code>
</code>

Das ist nicht das Ergebnis, das ich will, Ihre Antwort ist falsch für meine Frage

1) Können Sie zunächst die gespeicherte Prozedur ändern? Wenn Sie nur die ersten blockieren können, warum sollten Sie sie dann abfragen, wenn Sie sie nicht benötigen?
2) Wenn Sie es nicht ändern können, ist es am dümmsten, die Nummer der gewünschten Auswahl zu zählen und dann die Nummer der Ergebnismenge im zurückgegebenen Ergebnis

abzurufen

Bitte prüfen Sie zunächst, ob die vorherigen Optionen notwendig sind, dann können wir uns eine Lösung überlegen

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn