如何在Rails中编写where子句来测试多个值?
这不起作用:
where("wostatus_id = ?", 231 or 230 or 8466 )
还需要这样的语法:
where("wostatus_id != ?", 231 and 230 and 8466 )
感谢您的帮助!
答案 0 :(得分:4)
你可以这样做......
where("wostatus_id IN (?)", [231, 230, 8466])
或
where("wostatus_id NOT IN (?)", [231, 230, 8466])
答案 1 :(得分:2)
您可以使用正常的hash condition:
Model.where(wostatus_id: [230, 231, 8466])
这将产生预期的“IN”查询。在Rails 3中,没有办法将其转换为“NOT IN”,因此您需要使用where("wostatus_id NOT IN (?)", [230, 231, 8466])
方法。
在Rails 4中,您应该可以:
Model.where.not(wostatus_id: [230, 231, 8466])