我正在寻找PostgreSQL 9.2中新JSON函数的一些文档和/或示例。
具体来说,给定一系列JSON记录:
[
{name: "Toby", occupation: "Software Engineer"},
{name: "Zaphod", occupation: "Galactic President"}
]
如何编写SQL以按名称查找记录?
在原始SQL中:
SELECT * from json_data WHERE "name" = "Toby"
官方开发手册非常稀疏:
我汇总了PostgreSQL
9.2当前可能的功能
。使用一些自定义函数,可以执行以下操作:
SELECT id, json_string(data,'name') FROM things
WHERE json_string(data,'name') LIKE 'G%';
我现在将JSON函数移到了自己的项目中:
PostSQL- 一组用于将PostgreSQL和PL /
v8转换为一个很棒的JSON文档存储的功能
我在pgsql-hackers列表中引用了Andrew
Dunstan
:
在某个阶段可能会有一些json处理(与json生成相反)功能,但在9.2中没有。
并不能阻止他提供应该解决您的问题的PLV8示例实现。
提供大量新功能和运算符,以添加“ json-processing”。
Postgres 9.3中 原始问题 的答案:
SELECT *
FROM json_array_elements(
'[{"name": "Toby", "occupation": "Software Engineer"},
{"name": "Zaphod", "occupation": "Galactic President"} ]'
) AS elem
WHERE elem->>'name' = 'Toby';
高级示例:
对于更大的表,您可能需要添加一个表达式索引以提高性能:
添加 jsonb
(b为“二进制”,值存储为本地Postgres类型),并且 两种 类型 都具有
更多功能。除了上面提到的表达式索引外,jsonb
还支持GIN,btree和hash索引,其中GIN是最有效的。
json
以及jsonb
数据类型和功能。该手册建议如下:
通常, 大多数应用程序应该将JSON数据存储为
jsonb
,除非有非常特殊的需求,例如关于对象键顺序的传统假设。
大胆强调我的。
性能从GIN索引的总体改进中受益。
完整的jsonb
功能和操作员。添加更多功能以jsonb
进行就地操作和显示。
我正在为PostgreSQL 9.2中的新JSON函数寻找一些文档和/或示例。 具体来说,给定一系列JSON记录: 如何编写SQL来按名称查找记录? 在香草SQL中: 官方开发手册非常稀少: http://www.postgresql.org/docs/devel/static/datatype-json.html http://www.postgresql.org/docs/devel/stat
问题内容: 使用postgresql 9.3,我可以选择JSON数据类型的特定字段,但是如何使用UPDATE修改它们呢?我在postgresql文档中或在线上找不到任何示例。我尝试了明显的方法: 问题答案: 更新 :在PostgreSQL 9.5中 ,PostgreSQL本身具有一些操纵功能(但对于;没有;操纵值需要强制转换)。 合并2个(或更多)JSON对象(或串联数组): 因此,可以使用以下命
使用postgresql 9.3,我可以
问题内容: 我有以下存储过程,没有编写完整的存储过程,但其中一些是: 我想知道何时我将@course转换为VARCHAR类型,而数据库中的我是INT类型-比较如何进行? 问题答案: 在SQL Server中,两种不同类型之间的比较是这样进行的: 首先,根据数据类型优先级的规则比较这两种类型的优先级: 优先级较低的数据类型将转换为优先级较高的数据类型 接下来,将优先级较低的类型强制转换为优先级较高的
问题内容: 我有一张像这样的表: SQL或蜂巢中是否有一种方法可以将其转换为类似表的形式: 我不确定有没有一个词来描述这种操作…任何帮助将不胜感激! 问题答案: 这基本上是一个。您没有指定要使用的RDBMS,但是可以使用聚合函数和语句在任何数据库中获取结果: 参见带有演示的SQL Fiddle 结果:
我正在用spring数据创建一个带有空日期检查的spel动态查询。我的疑问是: 当我使用有效日期运行此查询时,它可以工作,但当我传递空日期时,我会得到以下错误: 堆栈跟踪: