说我有一个汽车数据库:
make, model, year, color
我想找到所有来自“道奇”的车,但是没有给我看两次同样的车型: 例如,我可能有:
Dodge,van,2004,red
Dodge,van,2005,blue
Dodge,ram,2005,blue
GM,Sunfire,2006,red
如果我这样做:
Car.where(make:"Dodge",model: $UNIQUE)
我希望得到:
Dodge,van,2004,red
Dodge,ram,2005,blue
Ofcourse $ UNIQUE不存在......如何用活动记录/ sql完成?
更一般地说,我想要所有对象x == y&& z在结果集中是唯一的。
这可以通过Car.where(make:“Dodge”)来完成一些红宝石。然后修剪出重复的模型,但我想知道是否有更好的方法。
答案 0 :(得分:4)
我认为应该返回具有独特品牌/型号组合的随机车(道奇范和道奇拉姆):
Car.where(make: 'Dodge').group(:model)
如果您只是对任何道奇感兴趣并且根本不关心该模型(这在您的问题中不明确)那么这可能符合您的需求:
Car.where(make: 'Dodge').first