sql >> Base de Datos >  >> RDS >> Mysql

Conversión dinámica de cadena en nombre de columna. mysql

Es posible que desee ver la respuesta a esta pregunta , que creo que es lo que estás tratando de lograr. En resumen, la respuesta sugiere usar declaraciones preparadas para simular una funcionalidad eval()-esque. En su caso, esto puede funcionar (puede ver el SQLFiddle aquí :

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;

No pretenderé ser ningún tipo de experto en la mecánica subyacente en el trabajo, pero según los comentarios, parece lograr el objetivo. Nuevamente, esto fue adoptado de otra respuesta, por lo que si funciona, asegúrese de hacer +1 en esa :)