आपके दृष्टिकोण में कुछ समस्याएं हैं। सबसे पहले आप अपने तर्क का उपयोग नहीं कर सकते मान अंतर्निहित कॉलम को संदर्भित करने के लिए। अच्छी बात यह है कि आप तैयार स्टेटमेंट का इस्तेमाल कर सकते हैं इसके लिए समाधान के रूप में।
दूसरी समस्या यह है कि MySQL फ़ंक्शन तैयार किए गए कथनों के उपयोग की अनुमति नहीं देता है। उस सीमा को हल करने के लिए आपको इसके बजाय संग्रहित प्रक्रियाओं का उपयोग करने की आवश्यकता है। उदाहरण के तौर पर:
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