[英]How do I pass an array to where clause in PostgreSQL?
I'm trying to delete from a table using where clause while passing it an array.我正在尝试使用 where 子句从表中删除,同时将其传递给数组。
DELETE FROM Btemp
WHERE col2 =
(SELECT ARRAY((SELECT col2 FROM Atemp INTERSECT SELECT col2 FROM Btemp)));
I'm getting this error:我收到此错误:
ERROR: operator does not exist: character varying = character varying[]
LINE 2: WHERE col2 =
^
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
SQL state: 42883
And if do it without array, like below如果没有数组就这样做,如下所示
DELETE FROM Btemp
WHERE col2 =
(SELECT col2 FROM Atemp INTERSECT SELECT col2 FROM Btemp);
I get error:我得到错误:
ERROR: more than one row returned by a subquery used as an expression
What should I do?我应该怎么办?
DELETE FROM Btemp
WHERE col2 =
ANY(SELECT col2 FROM Atemp INTERSECT SELECT col2 FROM Btemp);
further reference: IN vs ANY operator in PostgreSQL进一步参考: PostgreSQL 中的 IN 与 ANY 运算符
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.