Du kanske vill se svaret på denna fråga , vilket jag tror är vad du försöker åstadkomma. Kortfattat föreslår svaret att man använder förberedda satser för att simulera en eval()-liknande funktionalitet. I ditt fall kan detta fungera (du kan se SQLFiddle här :
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;
Jag kommer inte att påstå att jag är någon sorts expert på den underliggande mekaniken på jobbet, men enligt kommentarerna verkar det uppnå målet. Återigen, detta antogs från ett annat svar, så om det fungerar, se till att +1:a det :)