Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Noch ein #1054:Unbekannte Spalte im Mysterium „Feldliste“.

Für mich Zuweisung mit CASE-Ausdruck ist etwas verwirrend (schwer zu lesen), also würde ich CASE verwenden Klausel mit INTO @var stattdessen:

BEGIN
CASE
    WHEN vtable = 'daily_operation' THEN 
        SELECT start_time INTO @result FROM daily_operation WHERE (client_id = vclient_id AND user_id = vuser_id AND id = vid AND edition_id = vedition_id) LIMIT 1;
    WHEN vtable = 'monthly_operation' THEN 
        SELECT start_time INTO @result FROM monthly_operation WHERE (client_id = vclient_id AND user_id = vuser_id AND id = vid AND edition_id = vedition_id) LIMIT 1;
END CASE;

RETURN @result;
END

Beachten Sie, dass Sie @session_variables, die in SP verwendet werden, nicht DECLARE müssen.