Mysql
 sql >> Base de données >  >> RDS >> Mysql

Conversion dynamique de chaîne en nom de colonne. MySQL

Vous voudrez peut-être voir la réponse à cette question , ce que je crois est ce que vous essayez d'accomplir. En bref, la réponse suggère d'utiliser des instructions préparées afin de simuler une fonctionnalité eval()-esque. Dans votre cas, cela peut fonctionner (vous pouvez voir le SQLFiddle ici :

SELECT transaction_type FROM orders WHERE id=1 into @colname;
SET @table = 'items';
SET @query = CONCAT('SELECT ',@colname,' FROM ', @table);

PREPARE stmt FROM @query;
EXECUTE stmt;

Je ne prétendrai pas être une sorte d'expert sur les mécanismes sous-jacents au travail, mais d'après les commentaires, il semble atteindre l'objectif. Encore une fois, cela a été adopté à partir d'une autre réponse, donc si cela fonctionne, assurez-vous d'attribuer +1 à celle-ci :)