Bạn có thể muốn xem câu trả lời cho câu hỏi này , mà tôi tin rằng đó là những gì bạn đang cố gắng hoàn thành. Tóm lại, câu trả lời gợi ý sử dụng các câu lệnh đã chuẩn bị để mô phỏng một chức năng eval () - esque. Trong trường hợp của bạn, cách này có thể hoạt động (bạn có thể xem SQLFiddle tại đây :
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;
Tôi sẽ không tự nhận mình là một chuyên gia về cơ chế cơ bản tại nơi làm việc, nhưng theo các nhận xét thì có vẻ như tôi đã đạt được mục tiêu. Một lần nữa, câu trả lời này đã được thông qua từ một câu trả lời khác, vì vậy nếu nó hoạt động, hãy đảm bảo +1 câu trả lời đó :)