1

我的数据库事物中有一个 Thingworx 服务(SQL 查询),例如。GetCookiesByIds

我有一个ids带值的参数(STRING)1,2,3

我想查询:

SELECT * FROM Cookies WHERE id IN ([[ids]])`

但我有一个例外。

如何将我的参数 ID 转换为有效格式?

4

3 回答 3

0

一个)

SELECT * FROM cookies WHERE id = any([[ids]]::int[])

的值ids必须类似于:{1,2,3}


二)

SELECT * FROM cookies WHERE id = any(
    CONCAT( '{', [[ids]], '}' ) ::int[]
)

的值ids必须类似于:1,2,3

于 2020-11-18T15:23:17.353 回答
0

一个简单的便携式选项是:

select *
from cookies
where ',' || $1 || ',' like '%,' || id || ',%'

... 其中$1表示作为查询参数的 CSV 字符串。

在 Postgres 中,我们还可以使用数组:

select *
from cookies
where id = any(string_to_array($1, ','))
于 2020-11-18T14:36:18.403 回答
0

如果你想这样做的语法是这样的

SELECT * FROM Cookies WHERE id IN (<<ids>>)

如果您使用, Thingworx 服务将在查询中连接您的输入参数,如果您使用<<>>,则将其定义为实际参数[[]]

于 2021-03-18T07:10:40.660 回答