在谷歌云扳手中查询一个数组
Posted
技术标签:
【中文标题】在谷歌云扳手中查询一个数组【英文标题】:Query a Array in google cloud spanner 【发布时间】:2017-07-08 19:42:15 【问题描述】:如何在 google cloud spanner 中查询数组?
我试过了
let query =
sql:`SELECT id, name, description FROM articles WHERE lang = '` + req.swagger.params.lang.value + `' AND tags ARRAY['` + req.swagger.params.tag.value + `']::varchar[]`
;
【问题讨论】:
【参考方案1】:您需要隐式取消嵌套数组元素。举个例子
SELECT id, name, description
FROM articles as a, a.tags as single_tag
WHERE lang = "your lang value"
AND single_tag = "your tag value"
首先,我将数组列 tags
隐式地取消嵌套到列 single_tag
。
其次,我将您的 where
子句更改为与新的 single_tag
列相等
注意:如果标签中的多个值符合您的条件,您可以多次返回同一行。只要您返回的列都不是数组或结构,您可以通过添加DISTINCT
子句来解决此问题。例如:
SELECT DISTINCT id, name, description
FROM articles as a, a.tags as single_tag
WHERE lang = "your lang value"
AND single_tag = "your tag value"
【讨论】:
感谢您的回答,我在 5 分钟前就知道了 ;-) - 我认为 spanner 是 gcp 完美堆栈的缺失环节!我喜欢它!!感谢您的出色工作!以上是关于在谷歌云扳手中查询一个数组的主要内容,如果未能解决你的问题,请参考以下文章