sql >> Base de Datos >  >> RDS >> Mysql

Otro #1054:Columna desconocida en el misterio de la 'lista de campos'

Para mí, asignación con expresión CASE es un poco confuso (difícil de leer), así que usaría CASE cláusula con INTO @var en cambio:

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

Tenga en cuenta que no necesita DECLARAR @session_variables utilizadas en SP.