给出一个包含复合主键的表,例如a
和b
。如果我有要查询的配对列表,例如
pairs = [[1, 1], [2, 2], [2, 1]]
如何在数据集中使用它们进行过滤?
SQL中的结果看起来像
WHERE (a, b) IN ((1, 1), (2, 2), (2, 1))
有DB.values()
可以用来表示右侧,但是我不确定如何将实际的过滤器放入数据集中。
答案 0 :(得分:3)
DB[:table].where([:a, :b]=>[[1,1], [2,2], [2,1]])
# SELECT * FROM table WHERE ((a, b) IN ((1, 1), (2, 2), (2, 1)))