postgresql query -> WHERE identifier in an array of strings [duplicate]

ma8fv8wu  于 12个月前  发布在  PostgreSQL
关注(0)|答案(1)|浏览(163)

此问题在此处已有答案

IN vs ANY operator in PostgreSQL(3个答案)
2天前关闭。
我试图向postgis/postgresql服务器查询,它会得到这样的项目:

SELECT *
FROM "ContextBuilding"
WHERE "id" = ANY('UM3cxUnOtOmMsD79zcRWb','ulDME73WOGaChCbLH63iY','UoX9NoJIzANpXBvrjXQVx'::text[]) AND
coords &&
ST_MakeEnvelope(13.445188084976532, 52.52807719874824, 13.44677407320652, 52.529087036036735, 4326)

字符串
问题是WHERE "id" ...线。
如何检查字符串数组?
最后,我想从一个类型脚本代码生成这个查询,如下所示:

const query = `
  SELECT *
  FROM ContextBuilding
  WHERE "id" = ANY(${tenantBuildingIDs}::text[]) AND
  coords &&
  ST_MakeEnvelope(${bounds[0]}, ${bounds[1]}, ${bounds[2]}, ${bounds[3]}, 4326)
  `


但这失败的原因是相同的。
一个示例输出来自:

SELECT volume, id, uid, coords FROM "ContextBuilding"


看起来像这样:
x1c 0d1x的数据

htrmnn0y

htrmnn0y1#

或者IN带有列表

WHERE  id  IN ('UM3cxUnOtOmMsD79zcRWb','ulDME73WOGaChCbLH63iY','UoX9NoJIzANpXBvrjXQVx'::text[])

字符串
或者= ANY ()数组

WHERE  id = ANY('{UM3cxUnOtOmMsD79zcRWb,ulDME73WOGaChCbLH63iY,UoX9NoJIzANpXBvrjXQVx}'::text[]))


也会接受子查询中的set。请参阅:

  • PostgreSQL中的IN与ANY运算符

相关问题