ruby - Sequel 中多列的值匹配列表

标签 ruby sequel

给定一个具有复合主键的表,例如ab。如果我有一个想要查询的对列表,例如,

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

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

SQL 中的结果如下所示

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

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

最佳答案

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

关于ruby - Sequel 中多列的值匹配列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52816454/

相关文章:

ruby - 选择特定日期的所有记录的续集方式

ruby-on-rails - 如何修复 heroku 上的 ActionDispatch::Cookies::CookieOverflow 错误?

ruby - 将 Padrino 与 Sequel 结合使用,迁移可以创建单名 SQL 表吗?

ruby - 如何将 Redis 添加到 Docker 容器中?

ruby - 如何将 Ruby 数组项插入 SQLite?

ruby - 如何在 Sequel 迁移中创建 hstore 列?

ruby - 使用 Sequel 设置主键初始值

mysql - 处理数据库中不同的日期时间格式?

javascript - 如何在 Watir 中引用 JavaScript 工具提示

ruby - 中间人博客 - 如何确保 article.path 转换为绝对路径?