Postgresql select子句,其中ID位于json数组中
我有一个字符串形式的Postgresql select子句,其中ID位于json数组中,postgresql,Postgresql,我有一个字符串形式的uuidsjson数组,我想在select查询中使用它: SELECT "Animals" WHERE "id" = jsonb_array_elements_text( '["2ffae132-7a46-11eb-8be3-a483e71a4d0b", "2ffae132-7a46-11eb-8be3-a483e71a4d0c", "2ffae132-7a46-11eb-8be
uuids
json数组,我想在select查询中使用它:
SELECT "Animals" WHERE "id" = jsonb_array_elements_text(
'["2ffae132-7a46-11eb-8be3-a483e71a4d0b",
"2ffae132-7a46-11eb-8be3-a483e71a4d0c",
"2ffae132-7a46-11eb-8be3-a483e71a4d0d"]');
给出了这个错误
ERROR: set-returning functions are not allowed in WHERE
LINE 1: ...* from "Animals" WHERE "id" = jsonb_arra...
^
SQL state: 0A000
Character: 58
为了使用集合返回功能,您需要执行一个子项选择:
edb=# create table animals (id text, name text);
CREATE TABLE
edb=# insert into animals values ('2ffae132-7a46-11eb-8be3-a483e71a4d0b','foo');
INSERT 0 1
edb=# SELECT * from animals WHERE "id" in (select jsonb_array_elements_text(
'["2ffae132-7a46-11eb-8be3-a483e71a4d0b",
"2ffae132-7a46-11eb-8be3-a483e71a4d0c",
"2ffae132-7a46-11eb-8be3-a483e71a4d0d"]'));
id | name
--------------------------------------+------
2ffae132-7a46-11eb-8be3-a483e71a4d0b | foo
(1 row)