如何在JSONB中查询空数组?

时间:2017-09-27 14:33:49

标签: sql json postgresql postgresql-9.6

考虑这个例子:

http://localhost:9000/api/timemachine/index?resource=1&metrics=wont_fix_issues

在第二个查询中,我预计结果中只有一行(一个记录为空数组)。但正如您所看到的,结果中有两行。如何使用postgres=# CREATE TABLE emptyarray (fields jsonb); CREATE TABLE postgres=# INSERT INTO emptyarray VALUES ('{"key":["a","b"]}'); INSERT 0 1 postgres=# INSERT INTO emptyarray VALUES ('{"key":[]}'); INSERT 0 1 postgres=# SELECT * from emptyarray where Fields@>'{"key":["b"]}'; fields --------------------- {"key": ["a", "b"]} (1 row) postgres=# SELECT * from emptyarray where Fields@>'{"key":[]}'; fields --------------------- {"key": ["a", "b"]} {"key": []} (2 rows) 语法查询空数组?

我正在使用PostgreSQL 9.6

1 个答案:

答案 0 :(得分:4)

您可以使用:

SELECT * from emptyarray where Fields-> 'key' = '[]'::jsonb;

<强> Rextester Demo