我创建了一个名为' delivery'其中一个字段是JSON数组。
CREATE TABLE delivery
(
id text NOT NULL,
date timestamp with time zone NOT NULL,
items json NOT NULL,
CONSTRAINT delivery_pkey PRIMARY KEY (id)
)
以下是示例数据:
"1", "2012-01-08 20:54:38.541989+00", "[ {"id":1, "qty": 10 }, {"id":2, "qty": 300}]"
"2", "2012-01-08 22:44:10.016285+00", "[ {"id":1, "qty": 200}]"
如何获取' id'在'项内'字段等于1?
答案 0 :(得分:1)
您可以使用子查询和json函数执行此操作:
SELECT * FROM delivery
WHERE '1' in (
select a->>'id' from json_array_elements(items) a
)
这是要使用的SQL fiddle。
答案 1 :(得分:-1)
试试这个:
SELECT * FROM delivery WHERE items->>'id' = 1