Що се отнася до предаването на име на колона като параметър в MySQL (въпросът в заглавието), това не е възможно в SQL израз. Идентификаторите в SQL израз (например имената на таблици и имената на колони) трябва да са част от SQL текста. Те не могат да бъдат предадени с заместител за свързване.
IN
Операторът за сравнение очаква списък със стойности, затворени в скоби, или заявка SELECT, затворена в скоби, която връща набор от стойности.
Не е ясно какво се опитвате да направите.
Подозирам, че template_allowed_parent_templates
е колона в таблицата и съдържа разделен със запетая списък със стойности. (тръпка.)
Подозирам, че може да търсите MySQL FIND_IN_SET
string функция, която ще "търси" в списък, разделен със запетая, за определена стойност.
Като проста демонстрация:
SELECT FIND_IN_SET('5', '2,3,5,7')
, FIND_IN_SET('4', '2,3,5,7')
Функцията връща положително цяло число, когато посочената стойност е "намерена". Можете да използвате тази функция в предикат, напр.
WHERE FIND_IN_SET(id,template_allowed_parent_templates)
или
WHERE FIND_IN_SET( ? ,template_allowed_parent_templates)
(Това работи, защото в MySQL положително цяло число се оценява като TRUE в булев контекст.)
Само предполагам какво се опитвате да постигнете.