Bonjour

j'ai créé dans une requête stockée, une requête dynamique pour pouvoir passer en paramètre le nom d'une colonne

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
BEGIN 
 
SET @req = CONCAT('SELECT ',p_col1,' FROM donnes_players WHERE id =',p_id_donnes_players); 
 
PREPARE stmt1 FROM @req; 
 EXECUTE stmt1; 
DEALLOCATE PREPARE stmt1; 
 
END
ça fonctionne mais je veux récupérer la valeur contenu dans cette "p_col1" car je veux l'updater et je voudrais tout faire dans la même requête pour ne pas reconnecter à la base de donnée
voici ce que j'ai essayé, ci-dessous (MAIS qui ne fonctionne pas)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
BEGIN 
 
SET @req = CONCAT('SELECT ',@val_col1,':=',p_col1,' FROM donnes_players WHERE id =',p_id_donnes_players); 
 
PREPARE stmt1 FROM @req; 
EXECUTE stmt1; 
DEALLOCATE PREPARE stmt1; 
 
SET @Nval_col1 = REPLACE(@val_col1, p_carte1,'') ;
 
END
j'ai essayé aussi, ci-dessous (MAIS ça ne fonctionne pas non plus)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
BEGIN 
 
SET @req = CONCAT('SELECT ',p_col1,' INTO ',@val_col1,' FROM donnes_players WHERE id =',p_id_donnes_players); 
 
PREPARE stmt1 FROM @req; 
EXECUTE stmt1; 
DEALLOCATE PREPARE stmt1; 
 
SET @Nval_col1 = REPLACE(@val_col1, p_carte1,'') ;
 
END
je reçois le cod'erreur
#1064 - Erreur de syntaxe près de 'NULL' à la ligne 1