2017-09-12 1 views
0

Sélectionnez column_1, column_2 from table1;Ajout d'une valeur dans la variable dans la procédure stockée

J'ai besoin de ces valeurs column_1 et column_2 dans des variables pour pouvoir effectuer des manipulations avant de les insérer dans une autre table.

Merci pour toute l'aide

+0

Vous ne pouvez pas insérer plusieurs lignes dans une variable. Pouvez-vous développer votre question pour expliquer ce que vous essayez de faire avec le code que vous avez jusqu'à présent. –

+0

@ P.Salmon J'essaie d'obtenir des valeurs de colonne dans des variables afin que je puisse faire une manipulation avant de l'insérer dans une autre table. 'BEGIN declare @cat_name varchar (100); déclare @id int; select @cat_name = nom_catégorie, @id = last_id de la catégorie où category_id = v_type; END' mais ça me donne une erreur. – mujtaba

+0

Les variables déclarées ne doivent pas commencer par @ dans un programme stocké (procédure dans ce cas) –

Répondre

0
DECLARE @VAR1 INT 
DECLARE @VAR2 INT 

SELECT 
@VAR1 = column_1, 
@VAR2 = column_2 
from Table 

Vous pouvez faire quelque chose comme ceci pour définir les params et faites ce que vous voulez avec eux.

+0

Je l'ai fait comme ceci BEGIN déclarer '@ cat_name' varchar (100); déclare '@ id' int; select @cat_name = nom_catégorie, @ id = last_id de la catégorie où category_id = v_type; END Mais en l'enregistrant, vous obtenez une erreur MySQL a déclaré: # 1064 - Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de '@cat_name varchar (100); déclare @id int; select @cat_name = category_name, @ i 'à la ligne 3 – mujtaba

+0

Les variables déclarées ne doivent pas commencer par @ dans un programme stocké (procédure dans ce cas) –

0

Vous avez pas vraiment donné beaucoup d'informations à travailler mais peut-être quelque chose comme cela va faire

drop procedure if exists p; 
delimiter $$ 

create procedure p() 
BEGIN 
declare cat_name varchar(100); 
declare cat_id int; 
select id,username into cat_id,cat_name 
from users where id= 1; 
select cat_name,cat_id from dual; 

END $$ 
delimiter ; 

Lorsque les utilisateurs ressemble à ce

MariaDB [sandbox]> select * from users; 
+----+----------+--------------+--------+---------------------+---------------------+--------+-------------+-----------+ 
| id | userName | photo  | status | ts     | events_participated | fb_uid | Column_name | post_type | 
+----+----------+--------------+--------+---------------------+---------------------+--------+-------------+-----------+ 
| 1 | John  | john.png  |  1 | 2016-12-08 13:14:24 |     1 |  1 | 12346  | photo  | 
| 2 | Jane  | jane.png  |  1 | 2016-12-08 13:14:24 |    NULL |  2 | 12346  | photo  | 
| 3 | Ali  |    |  1 | 2016-12-08 13:14:24 |    NULL |  3 | 12346  | photo  | 
| 6 | Bruce | bruce.png |  1 | 2016-12-08 13:14:24 |    NULL |  6 | 12346  | photo  | 
| 7 | Martha |    |  1 | 2016-12-08 13:14:24 |    NULL |  7 | 12346  | photo  | 
| 8 | Sidney |    |  1 | 2016-12-08 13:14:24 |    NULL |  8 | 12346  | photo  | 
| 10 | Charlie | charlie.png |  1 | 2016-12-08 13:14:24 |    NULL |  10 | 12346  | content | 
| 12 | Elisa |    |  1 | 2016-12-08 13:14:24 |    NULL |  12 | 12346  | content | 
| 14 | Samantha | samantha.png |  1 | 2016-12-08 13:14:24 |    NULL |  14 | 12346  | content | 
| 15 | Hannah | hannah.png |  1 | 2016-12-08 13:14:24 |    NULL |  15 | 12346  | content | 
| 16 | Hannah |    |  1 | 2016-12-08 13:14:24 |    NULL |  16 | 12346  | content | 
| 17 | Kevin | kevin1.png |  1 | 2016-12-08 13:14:24 |    NULL |  17 | 12346  | content | 
| 18 | Kevin | kevin2.png |  1 | 2016-12-08 13:14:24 |    NULL |  18 | 12346  | content | 
| 19 | Ruth  |    |  1 | 2016-12-08 13:14:24 |    NULL |  19 | 12346  | content | 
| 20 | xyz  | NULL   | NULL | 2017-08-18 12:54:40 |    NULL | NULL | NULL  | content | 
+----+----------+--------------+--------+---------------------+---------------------+--------+-------------+-----------+ 
15 rows in set (0.01 sec) 

Lorsqu'il est appelé le résultat est

MariaDB [sandbox]> call p(); 
+----------+--------+ 
| cat_name | cat_id | 
+----------+--------+ 
| John  |  1 | 
+----------+--------+ 
1 row in set (0.01 sec)