我有一个postgres查询,其中一个输入参数类型为varchar。
该参数的值用于where子句。
到目前为止,只有单个值被发送到查询,但现在我们需要发送多个值,以便它们可以与IN子句一起使用。
此前
value='abc'.
where data=value.//current usage
现在
value='abc,def,ghk'.
where data in (value)//intended usage
我尝试了许多方法,即提供价值
value='abc','def','ghk'
或者
value="abc","def","ghk" etc.
但是没有任何工作,并且查询没有返回任何结果,尽管有一些匹配的数据可用。如果我直接在IN子句中提供值,我会看到数据。
我想我应该以某种方式将逗号分隔的字符串参数拆分为多个值,但我不知道如何做到这一点。
请注意其Postgres DB。
答案 0 :(得分:3)
您可以尝试将输入字符串拆分为数组。这样的事情:
where data = ANY(string_to_array('abc,def,ghk',','))