使用Sequel Gem将字段与字符串数组进行比较的最佳方法是什么?

时间:2016-12-21 22:56:21

标签: ruby postgresql sequel

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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