S vaším přístupem je několik problémů. Za prvé, nemůžete použít svůj argument hodnota odkazovat na podkladový sloupec. Dobrá věc je, že můžete použít Připravené výpisy jako řešení.
Druhým problémem je, že funkce MySQL neumožňují použití připravených příkazů. Chcete-li toto omezení obejít, musíte místo toho použít uložené procedury. Jako příklad:
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