我有一个问题,我不太明白。
假设我有一个名为“像这样的电影”的专栏(jsonb):
[{"title": "Pulp Fiction"}, {"tiitle": "Rambo"}]
有没有办法找到电影中有带tiitle键的对象的行?
最佳答案
对于Postgres 9.4:
ds=# CREATE TABLE yourtable (movie jsonb);
CREATE TABLE
ds=# \d+ yourtable
Table "public.yourtable"
Column | Type | Modifiers | Storage | Stats target | Description
--------+-------+-----------+----------+--------------+-------------
movie | jsonb | | extended | |
ds=# INSERT INTO yourtable VALUES ('[{"title": "Pulp Fiction"}, {"tiitle": "Rambo"}]');
INSERT 0 1
ds=# SELECT * FROM yourtable yt,jsonb_array_elements(yt.movies) AS movie
WHERE movie ? 'tiitle';
所以有很多good resources和Postgresdocumentation一起。