如果提供了文字字符串,例如"网球账户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中编写此搜索查询?
答案 0 :(得分:1)
我现在意识到这只是另一种方式的LIKE查询:
Descriptor.where('? LIKE pattern', "Tennis Account A33 Sydney AU").first