当前位置: 首页 > 知识库问答 >
问题:

Postgres查询-文本类型的json列中的更新字段

云瑞
2023-03-14

我在postgres数据库中有一个名为元数据的列,它存储一个JSON字符串,类型是文本

我试图运行一个查询来更新JSON中名为myCount的字段。我使用Spring Boot和JDBC。

String query = "UPDATE " + mTableName + " SET metadata = jsonb_set(metadata::jsonb, '{myCount}', ?)::text" +
                " WHERE scope = ?";
        PreparedStatement preparedStmt = jdbcTemplate.getDataSource().getConnection().prepareStatement(query);
        preparedStmt.setInt   (1, myCount);
        preparedStmt.setString(2, scope);

        // execute the java preparedstatement
        return preparedStmt.executeUpdate();

我得到了以下错误:错误:函数jsonb_set(jsonb,未知,整数)不

我可以运行一个查询来更新JSON中的myCount列吗?

共有1个答案

彭令秋
2023-03-14

函数jsonb_set(jsonb,未知,整数)没有

告诉您,您正在尝试以整数值作为最后一个参数来调用函数。但是该函数被定义为jsonb_set(jsonb, text[], jsonb),因此您需要将整数值转换为JSONB值:

SET metadata = jsonb_set(metadata::jsonb, '{myCount}'::text[], to_jsonb(?))::text" 
 类似资料:
  • 问题内容: 我正在使用Postgres的json数据类型,但想对嵌套在json中的数据进行查询/排序。 我想订购或查询json数据类型上的.where。例如,我要查询关注者计数> 500的用户,或者要按关注者或关注计数进行订购。 谢谢! 例: 问题答案: 对于任何偶然发现的人。我想出了一个使用ActiveRecord和Postgres的JSON数据类型的查询列表。随时对其进行编辑以使其更加清晰。

  • 问题内容: 我正在尝试查询Postgres数据库中的某个值。我在表中有一个命名字段,可以用以下两种方式之一表示: 1。 2。 我对这两种表示形式都满意。但是,我似乎无法找出如何让意甲5中的所有用户都说出来。我按照以下方式尝试了多个查询: 还有许多其他尝试,比其他尝试更愚蠢(请参见上文)。我该怎么办? 我已经能够确定: 但是,以下查询有效: 我认为我没有正确地传递列中的数据。我提供的创建的哈希是:

  • 本文向大家介绍索引大型文本字段以使MongoDB中的查询更快,包括了索引大型文本字段以使MongoDB中的查询更快的使用技巧和注意事项,需要的朋友参考一下 要为大文本字段建立索引,请与$regex一起使用以进行文本搜索。让我们创建一个包含文档的集合- 在方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是索引大文本字段以使查询更快的查询- 这将产生以下输出-

  • 我正在为PostgreSQL 9.2中的新JSON函数寻找一些文档和/或示例。 具体来说,给定一系列JSON记录: 如何编写SQL来按名称查找记录? 在香草SQL中: 官方开发手册非常稀少: http://www.postgresql.org/docs/devel/static/datatype-json.html http://www.postgresql.org/docs/devel/stat

  • 我尝试使用函数JSON\u array\u elements()卸载JSON数组,并尝试使用JSON\u array\u length(field\u name)计算数组的元素,但没有成功。我使用的是PostgreSQL 9.4.5。 我想查询元素“name”的结果,这是json类型数组field crew | json[]上保存的数据。

  • 我有一个包含json值的文本类型列。 我如何用查询提取postgres中列的'url'json字段? 通过查询,我得到以下错误。 SQL错误[42883]:错误:运算符不存在:text->>未知提示:没有运算符与给定的名称和参数类型匹配。您可能需要添加显式类型转换。psqlException:错误:运算符不存在:text->>未知提示:没有运算符与给定的名称和参数类型匹配。您可能需要添加显式类型转