Notez que pour SET, l'un =ou l' autre :=peut être utilisé comme opérateur d'affectation. Cependant, à l'intérieur d'autres instructions, l'opérateur d'affectation doit être :=et non =parce qu'il =est traité comme un opérateur de comparaison dans les instructions non SET.
METTRE À JOUR:
Suite aux commentaires ci-dessous, vous pouvez également effectuer les opérations suivantes:
Btw, pourriez-vous supprimer la sortie de la première instruction (comme sa seule affectation de variable) et n'afficher que la sortie de la deuxième requête?
Avada Kedavra
3
@Avada: Mise à jour de ma réponse avec une alternative, qui ne produit pas de résultat pour l'affectation de variable.
Cela se traduit Subquery returns more than 1 rowpour moi
timbroder
1
@timbroder Ajoutez simplement LIMIT 1 à la requête. Quoi qu'il en soit, j'ai suggéré une modification pour corriger cela.
Youkko
12
Voyons d'abord comment définir une variable dans mysql
Pour définir une variable dans mysql, elle doit commencer par '@' comme @ {variable_name} et ce '{variable_name}', nous pouvons le remplacer par notre nom de variable.
Maintenant, comment assigner une valeur à une variable dans mysql. Pour cela, nous avons de nombreuses façons de le faire
Utiliser le mot-clé 'SET'.
Exemple :-
mysql >SET@a =1;
Sans utiliser le mot clé 'SET' et en utilisant ': ='.
Exemple:-
mysql >@a:=1;
En utilisant l'instruction 'SELECT'.
Exemple:-
mysql >select1into@a;
Ici, @a est une variable définie par l'utilisateur et 1 va être attribué dans @a.
Maintenant, comment obtenir ou sélectionner la valeur de @ {nom_variable}.
nous pouvons utiliser l'instruction select comme
Exemple :-
mysql >select@a;
il affichera la sortie et affichera la valeur de @a.
Maintenant, comment attribuer une valeur à partir d'une table dans une variable.
Pour cela, nous pouvons utiliser deux déclarations comme: -
1.
@a :=(select emp_name from employee where emp_id =1);
select emp_name into@a from employee where emp_id =1;
Soyez toujours prudent, emp_name doit renvoyer une valeur unique, sinon cela vous générera une erreur dans ces instructions de type.
select grop into @group from user limit 1
.Ajoutez simplement des parenthèses autour de la requête:
la source
Subquery returns more than 1 row
pour moiVoyons d'abord comment définir une variable dans mysql
Pour définir une variable dans mysql, elle doit commencer par '@' comme @ {variable_name} et ce '{variable_name}', nous pouvons le remplacer par notre nom de variable.
Maintenant, comment assigner une valeur à une variable dans mysql. Pour cela, nous avons de nombreuses façons de le faire
Exemple :-
Exemple:-
Exemple:-
Ici, @a est une variable définie par l'utilisateur et 1 va être attribué dans @a.
Maintenant, comment obtenir ou sélectionner la valeur de @ {nom_variable}.
nous pouvons utiliser l'instruction select comme
Exemple :-
il affichera la sortie et affichera la valeur de @a.
Maintenant, comment attribuer une valeur à partir d'une table dans une variable.
Pour cela, nous pouvons utiliser deux déclarations comme: -
1.
Soyez toujours prudent, emp_name doit renvoyer une valeur unique, sinon cela vous générera une erreur dans ces instructions de type.
référez-vous à ceci: - http://www.easysolutionweb.com/sql-pl-sql/how-to-assign-a-value-in-a-variable-in-mysql
la source
Utilisez cette méthode pour que le résultat ne s'affiche pas lors de l'exécution de la procédure stockée.
La requête:
la source