web-dev-qa-db-fra.com

Définir le résultat d'une requête sur une variable dans MySQL

Cela devrait être une simple chose de syntaxe: J'essaye de définir une variable dans MySQL égale au résultat d'une requête, par exemple:

SET @variable1 = SELECT salary FROM employee_info WHERE emp_id = 12345678;

En gros, je veux que le salaire de cet employé soit stocké sous forme de variable que je puisse ensuite manipuler et ajouter.

Quelle serait la syntaxe correcte pour cela parce que je ne peux pas le faire fonctionner.

27
NateSHolland
SELECT salary INTO @variable1 FROM employee_info WHERE emp_id = 12345678 LIMIT 1;

ou 

SET @variable1 = (SELECT salary FROM employee_info WHERE emp_id = 12345678 LIMIT 1);

SELECT @variable1;
57
Damith

Vous pouvez même remplir plusieurs variables dans une même requête.

SELECT salary, salary_group INTO @var1, @var2 FROM employee_info WHERE emp_id = 12345678;
12
Olias

Vous êtes assez proche de la bonne syntaxe. C'est ici:

SET @variable1 = (SELECT salary FROM employee_info WHERE emp_id = 12345678);

puis imprimez la variable comme ceci:

SELECT @variable1;
3
Adam Fili

Définir le résultat d'une requête sur une variable dans MySQL  

Select  @Amount1:=  Amount FROM table where id=57703;
2
kavitha Reddy
SELECT @code:=salary FROM employee_info WHERE emp_id = 12345678;

Pour vérifier le salaire,

SELECT @code;

Le résultat du salaire sera initialisé dans code.

Plus d'information

2
Ravi Parekh

utilisez ceci 

SELECT weight INTO @x FROM p_status where tcount=['value'] LIMIT 1;

testé et fonctionne bien ...

1
Aman Maurya
select @variable1 := salary FROM employee_info WHERE emp_id = 12345678;
0
Rahul