将带有 CSV 的 varchar 参数转换为列值 postgres

Convert varchar parameter with CSV into column values postgres

我有一个带有一个 varchar 类型输入参数的 postgres 查询。

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.

但是 none 正在运行,查询没有返回任何结果,尽管有一些可用的匹配数据。如果我直接在 IN 子句中提供值,我会看到数据。

我想我应该以某种方式将以逗号分隔的字符串参数拆分为多个值,但我不确定该怎么做。

请注意其 Postgres 数据库。

您可以尝试将输入字符串拆分为数组。类似的东西:

where data = ANY(string_to_array('abc,def,ghk',','))