Der er et par problemer med din tilgang. Først og fremmest kan du ikke bruge dit argument værdi for at henvise til den underliggende kolonne. Den gode ting er, at du kan bruge Forberedte erklæringer som en løsning på dette.
Andet problem er, at MySQL-funktioner ikke tillader brug af Forberedte erklæringer. For at omgå denne begrænsning skal du bruge Stored Procedures i stedet. Som et eksempel:
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