【问题标题】: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[]`
  };

【问题讨论】:

    标签: sql database google-cloud-platform google-cloud-spanner


    【解决方案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 完美堆栈的缺失环节!我喜欢它!!感谢您的出色工作!
    猜你喜欢
    • 1970-01-01
    • 2019-06-07
    • 2020-07-22
    • 2023-04-06
    • 2020-01-25
    • 1970-01-01
    • 2018-08-19
    • 2017-08-28
    • 1970-01-01
    相关资源
    最近更新 更多