Det finns flera sätt att göra detta.
Du kan använda en underfråga:
SET @some_var = (SELECT COUNT(*) FROM mytable);
(som ditt original, lägg bara till parentes runt frågan)
eller använd SELECT INTO-syntaxen för att tilldela flera värden:
SELECT COUNT(*), MAX(col)
INTO @some_var, @some_other_var
FROM tab;
Underfrågans syntax är något snabbare (jag vet inte varför) men fungerar bara för att tilldela ett enda värde. Select into syntax låter dig ställa in flera värden samtidigt, så om du behöver ta flera värden från frågan bör du göra det istället för att köra frågan om och om igen för varje variabel.
Slutligen, om din fråga inte returnerar en enda rad utan en resultatuppsättning, kan du använda en markör .