Postgres搜索

时间:2016-02-28 04:30:45

标签: ruby-on-rails regex postgresql search

如果提供了文字字符串,例如"网球账户A33悉尼AU"我需要找到一个匹配它的db记录。 " A33"部分可以是任何字符。

我为我的rails应用程序创建了一个名为Descriptor的模型,该模型具有名为pattern的字符串列。该模式可以包含%字符,以表明任何字符都可以在字符串中的这个位置。例如"网球账号%悉尼AU"

因此,如果表中的数据如下所示,我想找到匹配"网球账户A33悉尼AU"它应该返回描述符1。

#<Descriptor id: 1, pattern: "Tennis Account % Sydney AU", ... >
#<Descriptor id: 2, pattern: "Tennis Account % Melbourne AU", ... >
#<Descriptor id: 3, pattern: "Tennis Account Sydney AU", ... >
#<Descriptor id: 4, pattern: "Jazz Flute Minions dney AU", ... >

......数以千计的描述符

如何在postgres中编写此搜索查询?

1 个答案:

答案 0 :(得分:1)

我现在意识到这只是另一种方式的LIKE查询:

Descriptor.where('? LIKE pattern', "Tennis Account A33 Sydney AU").first