【发布时间】:2014-11-21 19:15:36
【问题描述】:
我有一个带有电话号码前缀列的表格,例如:
prefix
------
9379
355422
35566
...
给定一个电话号码,我想从右边开始删除它的数字,直到它在前缀列上找到第一个匹配项。即:
937973418459
93797341845
9379734184
937973418
93797341
9379734
937973
93797
9379 <-- match found
请注意,我需要为电话号码列表执行此操作,因此与缓慢的单个查询相比,批量操作很重要。我尝试使用 postgres 的全文搜索:
tsquery('937973418459|93797341845|9379734184|937973418|93797341|9379734|937973|93797|9379')
它可以工作,但在运行 10k 电话号码时速度很慢。有没有更有效的方法来解决这个问题?
【问题讨论】:
标签: sql postgresql full-text-search pattern-matching prefix