在ActiveRecord中的一个查询中获取多个记录

时间:2015-01-27 20:39:26

标签: mysql ruby-on-rails ruby activerecord rails-activerecord

假设我有一张Cat桌子,每只猫都有独特的颜色。是否有一个activerecord方法我可以用来在一个查询中获取红色和蓝色的猫。我的目标是更快的查询,而不是用Cat.where(颜色:红色)单独找到每一个,然后用蓝色做同样的事情。

3 个答案:

答案 0 :(得分:5)

你可以这样做:

Cat.where(color: ['red', 'blue'])

这将生成SQL查询:

SELECT cats.* FROM cats WHERE cats.color IN ('red', 'blue')

答案 1 :(得分:1)

Cat.where(color: 'red').or.where(color: 'blue')

Cat.where("color = ? OR color = ?", "red", "blue")

Cat.where(color: ["red", "blue"])

答案 2 :(得分:-1)

研究JOIN陈述

您也可以在

中使用OR
where (color='blue' OR color='green')

检查:

Join statement - toturialspoint.com

OR and AND expression