json_data ____________________ 200 从json中提取特定信息

我使用的是PostgreSQL 9.6,我有以下的表,我们称它为 table1:

id  | json_data
____________________
200 | {"state": [3, 4, 5]}

我希望能够执行以下查询:提取数组中的 "state" 键入 json_data 为记录 1,但在这个过程中也会从数组中删除一些整数。

例如(在伪代码中)。

extract_state(id = 200, remove_numbers_from_json_data_state = [3, 5]) 应该返回 [4]

解决方案:

它返回

SELECT json_data->'state'->>1 FROM table1 WHERE id = 200;

,不

SELECT '{"state": [3, 4, 5]}'::jsonb->'state'->>1

所以如果你需要的话,你可以把它选择为一个数组。

4虽然没有内置的函数,但你可以很容易地写出自己的函数。[4]然后你可以像这样使用它。

SELECT ARRAY[('{"state": [3, 4, 5]}'::jsonb->'state'->>1)::int]

如果你喜欢传递一个JSON数组值,你可以这样定义函数。

给TA打赏
共{{data.count}}人
人已打赏
未分类

不同的":cl "包在通用Lisp实现之间的处理方式不同。

2022-9-10 16:41:37

未分类

在Windows和Linux中自动检测行尾。

2022-9-10 16:41:39

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索