我需要在我的数据库中识别包含电话号码的记录,以便我可以将它们发送给联系人团队。
实施例: tblData
鉴于此表结构,查询可能是:
SELECT * FROM tblData WHERE comment [HeresWhereINeedHelp]
评论可能(并且可能会)包含各种其他数据。示例评论:
是的,我的经历非常糟糕。我希望有人在111.222.3333给我打电话。谢谢。
包含此评论的记录应该在查询中提取,因为它包含电话号码。
我尝试了一个支持正则表达式搜索的扩展SPROC,但性能非常糟糕。该系统是SQL Server 2012。
非常感谢任何方向。
答案 0 :(得分:5)
您应该查看LIKE
operator。在你的情况下,你可能会去寻找
WHERE comment LIKE '%[0-9][0-9][0-9]_[0-9][0-9][0-9]_[0-9][0-9][0-9][0-9]%'
由于您正在搜索字符串中的任何位置,因此处理大型数据集也需要很长时间 - 您可能要尝试的另一个选项是在输入电话号码时检查注释字段,然后标记该电话号码使用像ContainsPhoneNumber (bit).
这样的列的行。这样,您可以对该列进行索引并执行更快的查找。
答案 1 :(得分:0)
我会为存储为10位整数的电话号码创建一个单独的表格 运行Regex一次以解析电话号码 索引该列,您将获得索引搜索速度。