【发布时间】:2018-11-27 14:32:36
【问题描述】:
使用 postgres 中的 SQL,我想知道一个 JSON 是否在另一个 JSON 中。
例如:
json_1 = {"a": ["123"], "b": ["456", "789"]}
json_2 = {"a": ["123"], "b": ["456"]}
在上述情况下,json_2["a"] 在 json_1["a"] 中,json_2["b"] 在 json_1["b"] 中。
如果我知道 json 的所有可能键,我就可以轻松地为每个键编写上述内容。但是,问题是我不知道 JSON 中有多少和哪些键。如果 json_2 在 json_1 中,如何检查 JSON 中的每个键?
【问题讨论】:
-
所以 json_1/2 可以包含任意数量的任意名称的键,并且这些键中的每一个都将始终是一个数组,并且对于 json_2 中的每个数组,您要检查相应的键(可能不存在)在json_1中,然后看看json_2数组中的所有值是否以任意顺序在json_1数组中找到?
-
正确。但是,如果密钥在 json_2 中,我知道它也将在 json_1 中。所以“可能不存在”部分不成立。但是,json_1中key的值可能是[]。
标签: sql json postgresql compare