この質問 への回答をご覧になることをお勧めします 、私はあなたが達成しようとしていることだと信じています。つまり、答えは、eval()風の機能をシミュレートするためにプリペアドステートメントを使用することを示唆しています。あなたの場合、これはうまくいくかもしれません(SQLFiddle ここ を見ることができます :
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;
私は、基礎となるメカニズムの専門家であるとは主張しませんが、コメントによれば、それは目標を達成しているようです。繰り返しになりますが、これは別の回答から採用されたため、機能する場合は必ず+1してください:)