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

Establecer el resultado de la variable, de la consulta

Hay varias formas de hacerlo.

Puede utilizar una subconsulta:

SET @some_var = (SELECT COUNT(*) FROM mytable);

(como su original, solo agregue paréntesis alrededor de la consulta)

o use la sintaxis SELECT INTO para asignar múltiples valores:

SELECT COUNT(*), MAX(col)
INTO   @some_var, @some_other_var
FROM   tab;

La sintaxis de la consulta secundaria es un poco más rápida (no sé por qué), pero solo funciona para asignar un valor único. La sintaxis select into le permite establecer varios valores a la vez, por lo que si necesita obtener varios valores de la consulta, debe hacerlo en lugar de ejecutar la consulta una y otra vez para cada variable.

Finalmente, si su consulta no devuelve una sola fila sino un conjunto de resultados, puede usar un cursor .