Mysql
 sql >> Database >  >> RDS >> Mysql

Conversione dinamica della stringa nel nome della colonna. MySQL

Potresti voler vedere la risposta a questa domanda , che credo sia ciò che stai cercando di realizzare. In breve, la risposta suggerisce di utilizzare istruzioni preparate per simulare una funzionalità eval()-esque. Nel tuo caso, questo potrebbe funzionare (puoi vedere SQLFiddle qui :

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;

Non pretendo di essere alcun tipo di esperto della meccanica sottostante al lavoro, ma dai commenti sembra raggiungere l'obiettivo. Ancora una volta, questo è stato adottato da un'altra risposta, quindi se funziona assicurati di fare +1 su quello :)