Existuje několik způsobů, jak to udělat.
Můžete použít dílčí dotaz:
SET @some_var = (SELECT COUNT(*) FROM mytable);
(stejně jako váš originál, stačí kolem dotazu přidat závorky)
nebo použijte syntaxi SELECT INTO k přiřazení více hodnot:
SELECT COUNT(*), MAX(col)
INTO @some_var, @some_other_var
FROM tab;
Syntaxe dílčího dotazu je o něco rychlejší (nevím proč), ale funguje pouze pro přiřazení jedné hodnoty. Syntaxe select into vám umožňuje nastavit více hodnot najednou, takže pokud potřebujete z dotazu získat více hodnot, měli byste to udělat raději než spouštět dotaz znovu a znovu pro každou proměnnou.
A konečně, pokud váš dotaz nevrací jeden řádek, ale sadu výsledků, můžete použít kurzor .