Mysql
 sql >> Base de données >  >> RDS >> Mysql

Définir le résultat de la variable, à partir de la requête

Il existe plusieurs façons de procéder.

Vous pouvez utiliser une sous-requête :

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

(comme votre original, ajoutez simplement des parenthèses autour de la requête)

ou utilisez la syntaxe SELECT INTO pour attribuer plusieurs valeurs :

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

La syntaxe de la sous-requête est légèrement plus rapide (je ne sais pas pourquoi) mais ne fonctionne que pour attribuer une seule valeur. La syntaxe select into vous permet de définir plusieurs valeurs à la fois, donc si vous avez besoin de saisir plusieurs valeurs de la requête, vous devriez le faire plutôt que d'exécuter la requête encore et encore pour chaque variable.

Enfin, si votre requête ne renvoie pas une seule ligne mais un ensemble de résultats, vous pouvez utiliser un curseur .