Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Defina o resultado da variável, da consulta


Existem várias maneiras de fazer isso.

Você pode usar uma subconsulta:
SET @some_var = (SELECT COUNT(*) FROM mytable);

(como o seu original, basta adicionar parênteses ao redor da consulta)

ou use a sintaxe SELECT INTO para atribuir vários valores:
SELECT COUNT(*), MAX(col)
INTO   @some_var, @some_other_var
FROM   tab;

A sintaxe da subconsulta é um pouco mais rápida (não sei por que), mas funciona apenas para atribuir um único valor. A sintaxe select into permite definir vários valores de uma só vez, portanto, se você precisar obter vários valores da consulta, faça isso em vez de executar a consulta repetidamente para cada variável.

Finalmente, se sua consulta não retornar uma única linha, mas um conjunto de resultados, você pode usar um cursor .