如何使用通配符对嵌套的json进行搜索?

slmsl1lt  于 2023-11-20  发布在  其他
关注(0)|答案(1)|浏览(113)

如何在嵌套的json上使用bigquery search(),并在字符串中使用一个pixel?
下面的例子,注意搜索字符串末尾的% s。在logrec json列上定义了一个搜索索引,使用它会很好。

with x as (
    select to_json('{"roleArn":"arn:iam::6789","roleSessionName":"abc123"}') as logrec
    union all
    select to_json('{"roleArn":"arn:iam::5678","roleSessionName":"abc124"}') as logrec
)
select * from x where search(logrec,'abc12%');

字符串

6mw9ycah

6mw9ycah1#

如果你不打算在where子句中使用search函数,下面的查询将返回booleantrue/false,如果在json数据中找到该模式。
请注意,下面的查询也适用于输入数据中的大写值-参见记录3。

with x as (
    select to_json('{"roleArn":"arn:iam::6789","roleSessionName":"abc123"}') as logrec
    union all
    select to_json('{"roleArn":"arn:iam::5678","roleSessionName":"abc124"}') as logrec
    union all
    select to_json('{"roleArn":"arn:iam::5678","roleSessionName":"ABC1"}') as logrec
    union all
    select to_json('{"roleArn":"arn:iam::5678","roleSessionName":"xyz123"}') as logrec
)
select *,search(logrec,r'\"abc12\"',analyzer=>'PATTERN_ANALYZER',analyzer_options=>'{"patterns": ["[a-zA-Z.]*"]}') as search_result
from x

字符串
请看输出的屏幕截图。希望这对你有帮助!
x1c 0d1x的数据

相关问题