Ada beberapa masalah dengan pendekatan Anda. Pertama-tama Anda tidak dapat menggunakan argumen Anda nilai untuk referensi kolom yang mendasarinya. Untung Anda dapat menggunakan Pernyataan yang Disiapkan sebagai solusi untuk ini.
Masalah kedua adalah bahwa fungsi MySQL tidak mengizinkan penggunaan Pernyataan yang Disiapkan. Untuk mengatasi batasan itu, Anda perlu menggunakan Prosedur Tersimpan. Sebagai contoh:
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