ActiveRecord OR查询你如何在Rails 3 ActiveRecord中进行OR查询。我找到的所有示例都只有AND查询。编辑:自Rails 5以来可以使用OR方法。请参阅ActiveRecord :: QueryMethods
3 回答
繁花如伊
TA贡献2012条经验 获得超12个赞
使用ARel
t = Post.arel_table
results = Post.where(
t[:author].eq("Someone").
or(t[:title].matches("%something%"))
)
结果SQL:
ree-1.8.7-2010.02 > puts Post.where(t[:author].eq("Someone").or(t[:title].matches("%something%"))).to_sql
SELECT "posts".* FROM "posts" WHERE (("posts"."author" = 'Someone' OR "posts"."title" LIKE '%something%'))
HUWWW
TA贡献1874条经验 获得超12个赞
如果要对一列的值使用OR运算符,可以将数组传递给.where
,ActiveRecord将使用IN(value,other_value)
:
Model.where(:column => ["value", "other_value"]
输出:
SELECT `table_name`.* FROM `table_name` WHERE `table_name`.`column` IN ('value', 'other_value')
这应该相当于OR
单个列
红颜莎娜
TA贡献1842条经验 获得超12个赞
在Rails 3中,它应该是
Model.where("column = ? or other_column = ?", value, other_value)
这还包括原始sql但我不认为在ActiveRecord中有一种方法可以进行OR操作。你的问题不是一个菜鸟问题。
- 3 回答
- 0 关注
- 612 浏览
添加回答
举报
0/150
提交
取消