将带有 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',','))
我有一个带有一个 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',','))