2016-05-23 7 views
1

Dies ist das erste Mal, dass ich auf Mysql gespeicherte Prozedur arbeite ich weiß, es ist eine lahme Frage ist, bitte ersparen Sie mir dies,Mysql gespeicherte Prozedur Rückkehr keine Werte

ist es nicht möglich, einen beliebigen Wert nach dem END drucken LOOP-Anweisung in MySQL-Prozedur. Wenn ja, wie können wir das erreichen? , was ich für das tat:

BEGIN 
    DECLARE U_movingCity varchar(50); 
    DECLARE U_state varchar(50); 
    DECLARE U_education varchar(50); 

    DECLARE id2 int(10); 
    DECLARE RankPoint int(10) DEFAULT 0; 

    DECLARE movingCity2 varchar(50); 
    DECLARE state2 varchar(50); 
    DECLARE education2 varchar(50); 

    DECLARE cur1 CURSOR FOR SELECT id, state , education FROM user WHERE id != userid AND Enabled='y' AND Active='y'; 

    SELECT state , education into U_state , U_education FROM user WHERE id = userid ; 

OPEN cur1; 
read_loop: LOOP 
    SET RankPoint := 0; 
    FETCH cur1 INTO id2, state2 , education2 ; 

    IF ((state2 = U_state)) THEN 
     SET RankPoint := RankPoint + 14; 
    END IF; 
    IF ((education2 = U_education)) THEN  
     SET RankPoint := RankPoint + 16; 
    END IF; 
    //this displays 
    select RankPoint; 

    END LOOP; 

    //this doesn't. 
    select id, RankPoint from user; 
    CLOSE cur1; 
END 
+1

sollten Sie nicht ID2 anstelle von ID verwenden? 'Wählen ID2, RankPoint von Benutzer;' –

+1

ID2 ist keine Spalte in meiner Benutzertabelle, die eine Variable ist, die ich zum Abrufen von Wert aus dem Cursor – VishAl

Antwort

0

Sie id2 statt id in Ihrer letzten Abfrage verwendet werden soll.

select `id2`, `RankPoint` from `user`; 
+0

ID2 ist keine Spalte in meiner Benutzertabelle, die eine var ist, die ich habe zum Abrufen des Werts vom Cursor deklariert. – VishAl

+0

@VishAl Ja, aber in dieser Variablen übergeben Sie den Wert vom 'Cursor', der den Wert von 'id' enthält. Hast du die Lösung ausprobiert? –

+0

auch wenn ich eine Auswahl * versuche es funktioniert nicht – VishAl