我正在尝试检查键是否存在于JSON中,如果存在,则返回整个JSON。
我有一个如下的JSON:
json
--------
"fruit":[{"apples":"5","oranges":"10"},{"apples":"5","oranges":"4"}]
"fruit":{"apples":"1","oranges":"15"}
"fruit":{"apples":"5","oranges":"1"}
"fruit":[{"lettuce":"7","kale": "8"}] 输出:如果JSON数组或JSON对象有键apples,则返回键值
json |Output
-------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- --------
"fruit":[{"apples":"5","oranges":"10"},{"apples":"5","oranges":"4"}] |[{"apples":"5","oranges":"10"},{"apples":"5","oranges":"4"}]
"fruit":{"apples":"1","oranges":"15"} |{"apples":"1","oranges":"15"}
"fruit":{"apples":"5","oranges":"1"} |{"apples":"5","oranges":"1"}
"fruit":[{"lettuce":"7","kale": "8"}] | null发布于 2021-03-31 20:00:38
只需使用if即可
with mytable as (
select '{"fruit":[{"apples":"5","oranges":"10"},{"apples":"5","oranges":"4"}]}' as json union all
select '{"fruit":{"apples":"1","oranges":"15"}}' union all
select '{"fruit":{"apples":"5","oranges":"1"}}' union all
select '{"fruit":[{"lettuce":"7","kale": "8"}]}'
)
select if(json like '%apples%', json_extract(json, '$.fruit'), null) as output
from mytable

https://stackoverflow.com/questions/66886950
复制相似问题