我尝试使用函数JSON\u array\u elements()卸载JSON数组,并尝试使用JSON\u array\u length(field\u name)计算数组的元素,但没有成功。我使用的是PostgreSQL 9.4.5。
我想查询元素“name”的结果,这是json类型数组field crew | json[]上保存的数据。
crew": [
{
"workHours": "9",
"workers": "50",
"checker_rate": 100,
"rate": 150,
"name": "Ramona",
"last": null,
"boxRate": 2,
"checkTraining": false,
"editing": true,
"ix": 0,
"breakPay": 3.0833333333333335,
"trainingPay": 0
},
{
"workHours": "4",
"workers": "50",
"checker_rate": 120,
"rate": 160,
"name": "Ramon",
"last": "Rosas",
"boxRate": 2,
"checkTraining": false,
"editing": false,
"id": 1,
"breakPay": 1.5416666666666667,
"trainingPay": 0
}
]
您的问题源于对json[]类型的错误使用。json数组是单个json对象,其类型是json,而不是json[]。示例:
create table test (id int, crew json);
insert into test values
(1, '
[
{
"workHours": "9",
"workers": "50",
"checker_rate": 100,
"rate": 150,
"name": "Ramona",
"last": null,
"boxRate": 2,
"checkTraining": false,
"editing": true,
"ix": 0,
"breakPay": 3.0833333333333335,
"trainingPay": 0
},
{
"workHours": "4",
"workers": "50",
"checker_rate": 120,
"rate": 160,
"name": "Ramon",
"last": "Rosas",
"boxRate": 2,
"checkTraining": false,
"editing": false,
"id": 1,
"breakPay": 1.5416666666666667,
"trainingPay": 0
}
]');
函数json\u array\u elements()按预期工作:
select id, elem->'name' as name
from test, json_array_elements(crew) elem;
id | name
----+----------
1 | "Ramona"
1 | "Ramon"
(2 rows)
其中一个查询(或两者)应能很好地与json[]配合使用:
select id, elem->'name' as name
from test, json_array_elements(crew[1]) elem;
select id, elem->'name' as name
from test, unnest(crew), json_array_elements(unnest) elem;
问题内容: 我正在尝试测试PostgreSQL 9.3中的类型。 我在名为的表中有一个列。JSON看起来像这样: 我想查询表中所有与“对象”数组中“ src”值匹配的报告。例如,是否可以在数据库中查询所有匹配的报告?我成功地写了一个查询,可以匹配: 但是由于具有一组值,所以我似乎无法编写出有效的东西。是否可以在数据库中查询所有匹配的报告?我已经查看了这些来源,但仍然无法了解: http://www
我试图测试PostgreSQL 9.3中的类型。 我在一个名为的表中有一个名为的列。JSON如下所示: 我想查询表中与'objects'数组中的'src'值匹配的所有报告。例如,是否可以查询数据库中匹配的所有报告?我成功地编写了一个可以匹配的查询: null 我不是SQL专家,所以我不知道我做错了什么。
问题内容: 我正在尝试查询Postgres数据库中的某个值。我在表中有一个命名字段,可以用以下两种方式之一表示: 1。 2。 我对这两种表示形式都满意。但是,我似乎无法找出如何让意甲5中的所有用户都说出来。我按照以下方式尝试了多个查询: 还有许多其他尝试,比其他尝试更愚蠢(请参见上文)。我该怎么办? 我已经能够确定: 但是,以下查询有效: 我认为我没有正确地传递列中的数据。我提供的创建的哈希是:
最近升级到使用PostgreSQL 9.3.1来利用JSON功能。在我的表中,我有一个json类型列,其结构如下: 就问题而言,这只是虚拟数据。 是否可以根据id查询电子邮件数组中的特定项目 差不多:“返回id=123的电子邮件)”?
问题内容: 最近升级到使用PostgreSQL 9.3.1来利用JSON功能。在我的表中,我有一个json类型列,其结构如下: 就问题而言,这只是伪数据。 是否可以根据id在emails数组中查询特定项目? 差不多:“返回电子邮件,其中id = 123)”? 问题答案: 是的,这是可能的: 是您的表名,是JSON列的名称。
我有一个非常特别的问题,关于查询嵌套到数组字段的布尔字段和字符串字段。索引映射如下所示: 文档索引还有许多其他字段,这些字段没有嵌套到数组字段中,但必须包含在查询字段中。我尝试了一种使用过滤器和布尔查询的方法,如下所示: 这个查询的问题是,它返回的文档在我看来不必返回。在这种情况下,文件如下所示: 您可以注意到,array_field_1的第三项包含boolean_field_2:false和正在