我知道嵌入式JSON值在SQL和redshift中是可查询的。 (通过json_extract_path_text
)等函数
但是有可能有一个嵌入的事物列表,然后查询?例如说我有这张桌子:
fruit people_who_like_it
apples {[Brian]}
oranges {[Susan, Brian]}
bananas {[Freddy]}
有没有办法构建一个查询来查找Brian喜欢的所有水果?
答案 0 :(得分:0)
你试过了吗?
SELECT fruit
FROM yourTable
WHERE people_who_like_it LIKE '%Brian%';
这应该会给你任何Brian喜欢的水果。
更新:
要获得Brian的完全匹配结果,请在评论中指出:
SELECT fruit
FROM yourTable
WHERE people_who_like_it LIKE '%[Brian]%'
OR people_who_like_it LIKE '% Brian]%'
OR people_who_like_it LIKE '% Brian,%'
OR people_who_like_it LIKE '%[Brian,%';
有四种可能与Brian完全匹配的可能性,包括:
“[布赖恩]”
“Brian]”< - 前面的空格
“Brian,”< - 前面的空间
“[布赖恩,”
答案 1 :(得分:0)
如果您可以将该字符串转换为JSON字符串,则可以使用 JSON_EXTRACT_ARRAY_ELEMENT_TEXT函数:
https://docs.aws.amazon.com/redshift/latest/dg/JSON_EXTRACT_ARRAY_ELEMENT_TEXT.html