Pokud jde o předání názvu sloupce jako parametru v MySQL (otázka v názvu), v příkazu SQL to není možné. identifikátory v příkazu SQL (např. názvy tabulek a názvy sloupců) musí být součástí textu SQL. Ty nelze předat pomocí zástupného symbolu vazby.
IN
Operátor porovnání očekává seznam hodnot uzavřený v závorkách nebo dotaz SELECT uzavřený v závorkách, který vrátí sadu hodnot.
Není jasné, o co se pokoušíte.
Mám podezření, že template_allowed_parent_templates
je sloupec v tabulce a obsahuje seznam hodnot oddělených čárkami. (otřese se.)
Mám podezření, že možná hledáte MySQL FIND_IN_SET
string funkce, která "vyhledá" čárkami oddělený seznam pro konkrétní hodnotu.
Jako jednoduchá ukázka:
SELECT FIND_IN_SET('5', '2,3,5,7')
, FIND_IN_SET('4', '2,3,5,7')
Funkce vrátí kladné celé číslo, když je zadaná hodnota "nalezena". Tuto funkci můžete použít v predikátu, např.
WHERE FIND_IN_SET(id,template_allowed_parent_templates)
nebo
WHERE FIND_IN_SET( ? ,template_allowed_parent_templates)
(To funguje, protože v MySQL je kladné celé číslo vyhodnoceno jako PRAVDA v booleovském kontextu.)
Jen hádám, čeho se snažíte dosáhnout.