是否可以做这样的事情:
impl_getUrl()
所以我想知道给定的ID是否在列中。 如果没有,我怎么能用MySQL解决这个问题?
答案 0 :(得分:3)
至于在MySQL中传递列名作为参数(标题中的问题),这在SQL语句中是不可能的。 SQL语句中的标识符(例如表名和列名)必须是SQL文本的一部分。那些不能通过绑定占位符传递。
IN
比较运算符需要包含在parens中的值列表,或者包含在返回一组值的parens中的SELECT查询。
目前尚不清楚你的目的是什么。
我怀疑template_allowed_parent_templates
是表中的一列,它包含逗号分隔的值列表。 (颤动)。
我怀疑您可能正在寻找MySQL FIND_IN_SET
字符串函数,该函数将“搜索”逗号分隔列表中的特定值。
作为一个简单的演示:
SELECT FIND_IN_SET('5', '2,3,5,7')
, FIND_IN_SET('4', '2,3,5,7')
当指定值为“found”时,该函数返回一个正整数。您可以在谓词中使用该函数,例如
WHERE FIND_IN_SET(id,template_allowed_parent_templates)
或
WHERE FIND_IN_SET( ? ,template_allowed_parent_templates)
(这是有效的,因为在MySQL中,正整数在布尔上下文中被计算为TRUE。)
我只是猜测你想要完成什么。
答案 1 :(得分:0)
你能澄清一下你想做什么吗?
从查询中,您似乎希望从模板中获取所有template_id,其中某些值位于集合template_allowed_parent_templates中。传递列名作为参数的位置在哪里?