在Sequel中多列的值匹配列表

时间:2018-10-15 12:09:13

标签: ruby sequel

给出一个包含复合主键的表,例如ab。如果我有要查询的配对列表,例如

pairs = [[1, 1], [2, 2], [2, 1]]

如何在数据集中使用它们进行过滤?

SQL中的结果看起来像

WHERE (a, b) IN ((1, 1), (2, 2), (2, 1))

DB.values()可以用来表示右侧,但是我不确定如何将实际的过滤器放入数据集中。

1 个答案:

答案 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)))