在 google cloud spanner 中查询数组
Query a Array in google cloud spanner
如何在 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[]`
};
您需要隐式取消嵌套您的数组元素。举个例子
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
子句来解决此问题,只要您返回的列中有 none 是数组或结构。例如:
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"
如何在 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[]`
};
您需要隐式取消嵌套您的数组元素。举个例子
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
子句来解决此问题,只要您返回的列中有 none 是数组或结构。例如:
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"