# info about my PostgreSQL version
select version()
> PostgreSQL 10.6 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11), 64-bit
# create table
create table tx (id bigserial primary key, msg jsonb not null);
# create index on 'type' value of msg column
create index on tx using gin ((msg->'type'));
insert into tx (msg) values
('[{"type": "MsgSend", "value": {"amount": [{"denom": "dollar", "amount": "100"}], "from": "Jeniffer", "to": "James" }}]'),
('[{"type": "MsgSend", "value": {"amount": [{"denom": "dollar", "amount": "30"}], "from": "Jeniffer", "to": "James" }}]'),
('[{"type": "MsgBuy", "value": {"amount": [{"denom": "dollar", "amount": "10"}], "from": "George", "to": "Smith" }}]'),
('[{"type": "MsgSend", "value": {"amount": [{"denom": "dollar", "amount": "60"}], "from": "Jeniffer", "to": "James" }}]');
>
检查Postgres JSON数组是否包含字符串
在postgreSQL中从表中查询json对象
带有嵌入JSON对象的PostgreSQL JSON查询
如何实现这些查询?我相信如果我知道如何查询一个问题,那么我将能够解决其他问题。
我将提供任何可能需要的信息来解决这个问题。
官方的Postgresql文档包含您所需的所有内容。
根据您的问题,请参阅以下查询:
select * from tx where msg->0->>'type' = 'MsgSend';
select * from tx where msg->0->'value'->>'from' = 'Jeniffer';
select * from tx where (msg->0->'value'->'amount'->0->>'amount')::int > 50;
问题内容: 我使用 PostgreSQL 9.5 和Rails5。我想查询下面显示的包含JSON对象数组的列,以返回包含并执行计数的所有JSON数组元素。我使用 的 SQL 显示在json数据下方。运行查询只会返回一个空数组。 这是我的数据: 我想要其中一个sql查询返回: 和另一个查询以返回数组,以便我可以在应用程序中对其调用count,还可以遍历它以创建表单: 我试过这个SQL查询: 我也试过
我使用PostgreSQL 9.5和Rails 5。我想查询下面显示的包含JSON对象数组的jsonb列,以返回包含的所有JSON数组元素,并执行计数 我使用的SQL显示在json数据下面。运行查询只返回一个空数组。 我尝试了这里和这里建议的查询。 这就是我的jsonb数据的样子: 我希望其中一个sql查询返回: 和另一个返回数组的查询,以便我可以在我的应用程序中调用count并循环使用它来创建表
如何返回特定日期所在的行号? 类似这样的事情:
问题内容: 我有对象的Postgres JSONB数组,看起来像这样: 此JSONB是一个函数参数。 什么是最有效的检索方法 。 我尝试过玩,但是到目前为止我所做的一切看起来都非常混乱。 问题答案: 在 Postgres 9.4+中 ,可以在横向 联接中 使用该函数: 您可以通过一个简单的函数来实现该想法,例如: 在 Postgres 12+中, 您可以使用jsonb路径函数的形式来替代: Db
如何查询同时包含键值对“key1”-“value1”和“key2”-“value2”的文档?我似乎找不到关于这个的任何文件。 我尝试了下面的查询,但它没有返回任何结果,即使应该有匹配的文档。虽然用should替换must是可行的,但当我将minimum_should_match=100%时,它也不会返回任何结果。 这是映射的外观: 非常感谢你的帮助。
我有一个JSON对象,如下所示: 我想检查是否存在一个值为“id2”的id,java中是否有任何UTIL允许我这样做,而无需遍历所有对象并将字符串与目标进行比较? 附言:我不想知道“id”字段是否存在,使用JSONObject.has(键),这不是我要问的。