2017-02-19 72 views
3

如何在Google雲端扳手中查詢陣列?在google雲端扳手中查詢陣列

我已經試過這

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[]` 
    }; 

回答

2

你要含蓄UNNEST您的數組元素。作爲一個例子

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" 
+2

謝謝你的答案,我在5分鐘前解決了;-) - 我認爲扳手是完美堆棧在gcp的缺失鏈接!我喜歡它!!感謝你的偉大工作! – Aron