Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Dynamische Umwandlung von String in Spaltenname. MySQL

Vielleicht möchten Sie die Antwort auf diese Frage sehen , was Sie meiner Meinung nach erreichen wollen. Kurz gesagt, die Antwort schlägt vor, vorbereitete Anweisungen zu verwenden, um eine eval()-ähnliche Funktionalität zu simulieren. In Ihrem Fall könnte dies funktionieren (Sie können SQLFiddle hier sehen :

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;

Ich werde nicht behaupten, ein Experte für die zugrunde liegende Mechanik bei der Arbeit zu sein, aber laut den Kommentaren scheint es das Ziel zu erreichen. Auch dies wurde von einer anderen Antwort übernommen. Wenn es also funktioniert, stellen Sie sicher, dass Sie +1 geben :)