如何识别包含电话号码的记录

时间:2012-11-14 20:25:45

标签: sql-server tsql phone-number

我需要在我的数据库中识别包含电话号码的记录,以便我可以将它们发送给联系人团队。

实施例: tblData

  • id
  • 评论
  • dtCreate

鉴于此表结构,查询可能是:

SELECT * FROM tblData WHERE comment [HeresWhereINeedHelp]

评论可能(并且可能会)包含各种其他数据。示例评论:

是的,我的经历非常糟糕。我希望有人在111.222.3333给我打电话。谢谢。

包含此评论的记录应该在查询中提取,因为它包含电话号码。

我尝试了一个支持正则表达式搜索的扩展SPROC,但性能非常糟糕。该系统是SQL Server 2012。

非常感谢任何方向。

2 个答案:

答案 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一次以解析电话号码 索引该列,您将获得索引搜索速度。