我在PostgreSQL 9.3中有一个表books
,其字段为json
。
CREATE TABLE books (
id integer,
data json
);
表格的行
我需要在字段select
(表)的字段author
(json)中执行data
示例:
select * from books where data->>'author' = 'Bob' or data->>'author' = 'Xavier'
有可能吗?
由于
答案 0 :(得分:0)
好的,我现在明白你的问题。关于如何设置东西,答案非常简单。
select * from books where data->>'author' = 'Bob' or data->>'author' = 'Xavier'
原因 - >>不起作用是因为该领域的作者'不是字符串类型,它实际上是类型数组。所以当你使用#>>您需要指定所需数组的元素。看这里:http://www.postgresql.org/docs/9.3/static/functions-json.html
编辑:通读本文,它将帮助您了解如何访问JSON数据字段的不同部分。 http://schinckel.net/2014/05/25/querying-json-in-postgres/