Définir le résultat de la variable, à partir de la requête
Quand j'ai créer le sauvé de la procédure, je peux créer une variable oui? par exemple:
CREATE PROCEDURE `some_proc` ()
BEGIN
DECLARE some_var INT;
SET some_var = 3;
....
QUESTION: mais comment définir la variable de résultat de la requête, qui est de savoir comment faire certains comme ceci:
DECLARE some_var INT;
SET some_var = SELECT COUNT(*) FROM mytable ;
?
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Il y a plusieurs façons de le faire.
Vous pouvez utiliser une sous-requête:
(comme votre origine, il suffit d'ajouter des parenthèses autour de la requête)
ou de l'utilisation de la SÉLECTIONNER DANS la syntaxe d'attribuer plusieurs valeurs:
La sous-requête syntaxe est légèrement plus rapide (je ne sais pas pourquoi) mais ne fonctionne que pour attribuer une valeur unique. Sélectionner dans la syntaxe vous permet de définir plusieurs valeurs à la fois, donc si vous avez besoin de saisir plusieurs valeurs à partir d'une requête, vous devriez le faire plutôt que de l'exécution de la requête, encore et encore pour chaque variable.
Enfin, si votre requête ne renvoie pas à une seule ligne, mais un jeu de résultats, vous pouvez utiliser un curseur.
L'instruction select suivante devrait vous permettre d'enregistrer le résultat du count(*).