簡體   English   中英

在Array Rails ActiveRecord / SQL中選擇數組元素所在的行

[英]Selecting rows where array elements in Array Rails ActiveRecord/SQL

在Rails 4 / Ruby 2.1中,我正在嘗試執行以下操作:

@user.submissions.where(:submission_codes_array => valid_submission_codes_array).count

類似於您要查看:id是否在可能值數組(即.where(:id => valid_ids) ,如果在這種情況下,檢查特定屬性(它是postgres數組類型)是否包含可能值集中的任何值,在這種情況下,將對其進行計數。

有任何想法嗎?

AFAIK,您無法通過ActiveRecord進行操作,因為您使用的是僅限Postgres的功能(又名,我認為mysql不支持所需的功能)。

您想要的內容可以在這里找到: http : //www.postgresql.org/docs/8.2/static/functions-array.html

具體來說,您最終會得到類似Model.where("submission_codes_array && ?", valid_submission_codes_array.to_s.gsub('"',"'"))類的Model.where("submission_codes_array && ?", valid_submission_codes_array.to_s.gsub('"',"'"))&&運算符將檢查兩者之間是否存在重疊(也就是設置交集)這兩個數組,如果我沒看錯文檔的話。

注意,Active,ActiveRecord不會將數組序列化為Postgres喜歡的形式,因此您需要對其進行一些調整。

暫無
暫無

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

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