ruby-on-rails 如何查询数组类型得列

dohp0rv5  于 2022-11-19  发布在  Ruby
关注(0)|答案(3)|浏览(147)

我有一个表conditions,其中trigger_values列的类型为数组,我想在trigger_values上查询此表并提取匹配的记录。例如,假设我的条件表有3行:

<Condition id: 1, trigger_values: [1, 2, 3]>,
<Condition id: 2, trigger_values: [2, 4]>,
<Condition id: 3, trigger_values: [3, 5, 7]>

和3,因为它们的trigger_values列包含3。基本上,我需要如下所示:

Condition.where('trigger_values CONTAINS ?', query_value)

任何帮助都将不胜感激。谢谢

yzuktlbb

yzuktlbb1#

您应该使用IN运算子:

Condition.where('trigger_values IN (?)', query_value)
w46czmvw

w46czmvw2#

找到了解决办法:

Condition.where("'#{query_value}' = ANY(trigger_values)")

我需要使用ANY命令。

hpxqektj

hpxqektj3#

您应该使用Include作为数组

params[:query_value] = 3

Condition.where('trigger_values IN (?)',params[:query_value])

<Condition id: 1, trigger_values: [1, 2, 3]>,<Condition id: 3, trigger_values: [3, 5, 7]>

相关问题