在我的模型Listing
中,除其他列外,我有以下两列:
- seller_currency
- bidder_currency
listings.seller_currency
和listings.bidder_currency
的值可以是1
(USD)或0
(EUR)。
我正在尝试获取所有列表,其中seller_currency
和bidder_currency
是0
(EUR)或其中至少一个是0
(EUR)。
有没有比这更好的写条件的方法了?
Listing.where('(seller_currency=0) OR (bidder_currency=0) OR (seller_currency=0 AND bidder_currency=0)')
答案 0 :(得分:3)
根据您的示例,足以满足至少一个条件。
Listing.where(seller_currency: 0).or(Listing.where(bidder_currency: 0))
答案 1 :(得分:0)
您只需要一个或一个条件,它就覆盖了它们都为0的情况。这种方法比较可取,因为它可以同时计算两个列,因此查询速度更快。 另外,如果要使用变量,问号会停止sql注入。
Listing.where("(seller_currency=?) OR (bidder_currency=?)",0,0)