簡體   English   中英

Rails查詢與Postgres數組列的比較

[英]Rails query comparing against Postgres Array Column

所以我在表t.text "foo", default: [], array: true有此列t.text "foo", default: [], array: true

我在幫助文件中有這個數組列表,

module HelperData

  Helper_array = [
    "data_1",
    "data_2",
    "data_3",
    "data_4",
    "data_5"
  ]
end

FooName.rb模型內部,有一行include HelperData

因此,根據本《 Postgres指南》 ,我要傳遞的查詢是在比較PG數組時包含運算符&&

我已經嘗試了以下查詢:

FooName.where("foo" && HelperData::Helper_array) 此查詢返回錯誤ActiveRecord::StatementInvalid: PG::SyntaxError: ERROR: 語法錯誤與HelperData::Helper_array的元素HelperData::Helper_array 我有一點預感,這是因為Foo:text但是Helper_array的數據是string ,盡管我不確定。

FooName.where("foo && HelperData::Helper_array") 此查詢返回錯誤ActiveRecord::StatementInvalid: PG::UndefinedColumn: ERROR: 顯然,這只是錯誤的語法。

什么是正確的查詢來查找是否foo陣列具有與重疊的任何元素Helper_array ,並將所有FooName已經重疊元素的對象?

嘗試:

FooName.where("foo && ARRAY[?]::text[]", HelperData::Helper_array)

請參閱此鏈接https://www.postgresql.org/docs/current/static/functions-array.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM