我有一个问题,我不太明白。
假设我有一个名为“像这样的电影”的专栏(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一起。

10-06 06:19