Có một số vấn đề với cách tiếp cận của bạn. Trước hết, bạn không thể sử dụng đối số giá trị của mình để tham chiếu cột bên dưới. Điều tốt là bạn có thể sử dụng Câu lệnh chuẩn bị như một giải pháp cho việc này.
Vấn đề thứ hai là các hàm MySQL không cho phép sử dụng các Câu lệnh chuẩn bị. Để giải quyết hạn chế đó, thay vào đó bạn cần sử dụng Thủ tục đã lưu trữ. Ví dụ:
CREATE PROCEDURE test_func (IN col1 varchar(100), OUT res int)
BEGIN
SET @s=CONCAT('SELECT ',col1,' INTO @res FROM yourtable WHERE id=1');
PREPARE stmt1 FROM @s;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
SELECT @res INTO res;
END