【问题标题】:Best way to compare field against array of strings with Sequel Gem?使用 Sequel Gem 将字段与字符串数组进行比较的最佳方法?
【发布时间】:2017-05-07 11:58:24
【问题描述】:

如果我需要根据可能的字符串数组检查表中的字段(使用带有 Sequel gem 的 Postgres),最快的方法是什么?我已经尝试在每个条目之间使用| 从数组中构建一个正则表达式,然后使用它使用.where 搜索表,但它很慢......我希望可能会有更快方式。

【问题讨论】:

    标签: ruby postgresql sequel


    【解决方案1】:

    如果您的字段可以等于多个单词之一,您可以使用:

    SELECT * FROM table WHERE field IN ('apple', 'banana', 'carrot', 'dog', ....)
    

    【讨论】:

      【解决方案2】:

      PostgreSQL 可能不会使用|s 的正则表达式查找索引,这可以解释大型数据集上速度慢的原因。 IN 运算符是您想要使用的,因为它应该能够使用索引查找(假设有适当的索引)。续集:

      DB[:table].where(:field=>['string1', 'string2', 'string3'])
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-17
        • 2020-02-21
        • 1970-01-01
        • 2021-04-22
        相关资源
        最近更新 更多