Dafür gibt es mehrere Möglichkeiten.
Sie können eine Unterabfrage verwenden:
SET @some_var = (SELECT COUNT(*) FROM mytable);
(wie Ihr Original, fügen Sie einfach Klammern um die Abfrage hinzu)
oder verwenden Sie die SELECT INTO-Syntax, um mehrere Werte zuzuweisen:
SELECT COUNT(*), MAX(col)
INTO @some_var, @some_other_var
FROM tab;
Die Unterabfragesyntax ist etwas schneller (ich weiß nicht warum), funktioniert aber nur, um einen einzelnen Wert zuzuweisen. Die select into-Syntax ermöglicht es Ihnen, mehrere Werte auf einmal festzulegen. Wenn Sie also mehrere Werte aus der Abfrage abrufen müssen, sollten Sie dies tun, anstatt die Abfrage immer wieder für jede Variable auszuführen.
Wenn Ihre Abfrage schließlich keine einzelne Zeile, sondern eine Ergebnismenge zurückgibt, können Sie einen Cursor .