我知道嵌入的JSON值可以在SQL和紅移中查詢。 (通過像json_extract_path_text
這樣的函數)是否有可能查詢列表中的元素?
但是有可能擁有一個嵌入的事物列表,然後查詢它嗎?例如說我有這個表:
fruit people_who_like_it
apples {[Brian]}
oranges {[Susan, Brian]}
bananas {[Freddy]}
有沒有一種方法來構造查詢發現,布賴恩喜歡所有的水果?
我知道嵌入的JSON值可以在SQL和紅移中查詢。 (通過像json_extract_path_text
這樣的函數)是否有可能查詢列表中的元素?
但是有可能擁有一個嵌入的事物列表,然後查詢它嗎?例如說我有這個表:
fruit people_who_like_it
apples {[Brian]}
oranges {[Susan, Brian]}
bananas {[Freddy]}
有沒有一種方法來構造查詢發現,布賴恩喜歡所有的水果?
你試過:
SELECT fruit
FROM yourTable
WHERE people_who_like_it LIKE '%Brian%';
這應該給你,布萊恩喜歡的任何水果。
UPDATE:
爲了得到結果爲布賴恩精確匹配,如在評論中指出,你可以嘗試:
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,%';
有四種可能性,布萊恩的精確匹配可能看起來像包括:
「[布賴恩]」
「布賴恩]」 < --preceding空間
「布賴恩,」 < --preceding空間
「[布賴恩,」
如果你能說字符串轉換成JSON字符串比你可以使用 JSON_EXTRACT_ARRAY_ELEMENT_TEXT功能:
https://docs.aws.amazon.com/redshift/latest/dg/JSON_EXTRACT_ARRAY_ELEMENT_TEXT.html
嗯,這將適用於這個例子,所以+1。儘管如果例如一個人被命名爲'Cooper',另一個'Coop'會被打破。 –