Postgres 等同于 ANY ... SATISFIES in n1ql 以组合 ANY 和 IN
Postgres equivalent of ANY ... SATISFIES in n1ql to combine ANY and IN
我知道在 n1ql 中,您可以编写一个结合 ANY
和 IN
运算符的查询条件,如下所示:
WHERE ANY v IN [v1, v2] SATISFIES v IN c1 END
我正在尝试在 postgres 中重写相同的查询,现在我正在使用 OR
,就像这样:
WHERE v1 IN c1
OR v2 IN c1
但是我可以使用 SATISFIES
的等效项吗?
假设 c1
是一个子查询,您可以使用数组重叠运算符 &&
:
WHERE ARRAY[v1, v2] && array(SELECT ...)
如果数组有共同的元素,那将是 TRUE
,这应该符合您的要求。
我也在考虑数组的思路,像这样...
select *
from my_table
where array[v1, v2] @> array[c1]
db-fiddle: https://www.db-fiddle.com/f/9qfJzyF6sfoNfFxRKtXa1W/0
我知道在 n1ql 中,您可以编写一个结合 ANY
和 IN
运算符的查询条件,如下所示:
WHERE ANY v IN [v1, v2] SATISFIES v IN c1 END
我正在尝试在 postgres 中重写相同的查询,现在我正在使用 OR
,就像这样:
WHERE v1 IN c1
OR v2 IN c1
但是我可以使用 SATISFIES
的等效项吗?
假设 c1
是一个子查询,您可以使用数组重叠运算符 &&
:
WHERE ARRAY[v1, v2] && array(SELECT ...)
如果数组有共同的元素,那将是 TRUE
,这应该符合您的要求。
我也在考虑数组的思路,像这样...
select *
from my_table
where array[v1, v2] @> array[c1]
db-fiddle: https://www.db-fiddle.com/f/9qfJzyF6sfoNfFxRKtXa1W/0