为了账号安全,请及时绑定邮箱和手机立即绑定

ActiveRecord OR查询

ActiveRecord OR查询

慕无忌1623718 2019-08-26 17:52:04
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%'))


查看完整回答
反对 回复 2019-08-26
?
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单个列


查看完整回答
反对 回复 2019-08-26
?
红颜莎娜

TA贡献1842条经验 获得超12个赞

在Rails 3中,它应该是

Model.where("column = ? or other_column = ?", value, other_value)

这还包括原始sql但我不认为在ActiveRecord中有一种方法可以进行OR操作。你的问题不是一个菜鸟问题。


查看完整回答
反对 回复 2019-08-26
  • 3 回答
  • 0 关注
  • 565 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信