Ruby Sequel中多列值的匹配列表

Ruby Sequel中多列值的匹配列表,ruby,sequel,Ruby,Sequel,给定一个具有复合主键的表,例如a和b。如果我有一个要查询的配对列表,比如 pairs = [[1, 1], [2, 2], [2, 1]] 如何在数据集中使用这些进行筛选 SQL中的结果如下所示 WHERE (a, b) IN ((1, 1), (2, 2), (2, 1)) 有DB.values()可以用来表示右侧,但我不确定如何将实际过滤结果放入数据集中。我认为您不能对数据集进行在中的位置。您可以创建一个临时表,然后尝试加入它。@tadman请看下面Jeremy的答案。:)非常感谢你,杰

给定一个具有复合主键的表,例如
a
b
。如果我有一个要查询的配对列表,比如

pairs = [[1, 1], [2, 2], [2, 1]]
如何在数据集中使用这些进行筛选

SQL中的结果如下所示

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

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

我认为您不能对数据集进行
中的位置。您可以创建一个临时表,然后尝试加入它。@tadman请看下面Jeremy的答案。:)非常感谢你,杰里米!好吧,这是出人意料的容易。
DB[:table].where([:a, :b]=>[[1,1], [2,2], [2,1]])
# SELECT * FROM table WHERE ((a, b) IN ((1, 1), (2, 2), (2, 1)))