作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我从 firestore 数据库导入了 bigquery,我想在其中查询文档中的特定字段。这是通过 firestore-bigquery 扩展填充的,文档数据存储为 JSON 字符串。
我试图在我的查询中使用 WHERE 子句,该子句使用 JSON 数据中的字段之一。但是,这似乎不起作用。
我的查询如下:
SELECT json_extract(data,'$.title') as title,p
FROM `table`
left join unnest(json_extract_array(data, '$.tags')) as p
where json_extract(data,'$.title') = 'technology'
data
是 JSON 对象和
title
是所有项目的属性。上面的查询将运行,但会产生“无结果”(当它们出现在表格预览中时,肯定有相关标题的结果)。
WHERE title = 'technology'
同样,但这会返回一个错误
title
是一个无法识别的字段(因此是 json_extract)。
最佳答案
从那以后,我设法解决了这个问题,并将与其他遇到相同问题的人分享解决方案。
解决方案是使用 JSON_VALUE
在 WHERE 子句中,例如:
where JSON_VALUE(data,'$.title') = 'technology';
我仍然不确定这是否是在性能和成本方面做到这一点的最佳方式,所以我会等着看是否有人留下更好的答案。
关于google-bigquery - Google Bigquery,基于 JSON 项的 WHERE 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65396815/
我是一名优秀的程序员,十分优秀!