首页 > 解决方案 > Sequel中多列上的匹配值列表

问题描述

给定一个具有复合主键的表,比如aand b。如果我有一个我想查询的对列表,比如说,

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

如何在数据集中使用这些进行过滤?

SQL 中的结果看起来像

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

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

标签: rubysequel

解决方案


DB[:table].where([:a, :b]=>[[1,1], [2,2], [2,1]])
# SELECT * FROM table WHERE ((a, b) IN ((1, 1), (2, 2), (2, 1)))

推荐阅读