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

Pau*_*ett 1 t-sql sql-server phone-number

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

示例:tblData

  • ID
  • 评论
  • dtCreate

给定此表结构,查询可能是:

SELECT * FROM tblData WHERE comment [HeresWhereINeedHelp]
Run Code Online (Sandbox Code Playgroud)

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

是的,我有一个糟糕的经历.我希望有人在111.222.3333给我打电话.谢谢.

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

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

非常感谢任何方向.

小智 5

你应该看看LIKE运营商.在你的情况下,你可能会去做一些事情

WHERE comment LIKE '%[0-9][0-9][0-9]_[0-9][0-9][0-9]_[0-9][0-9][0-9][0-9]%'
Run Code Online (Sandbox Code Playgroud)

由于您在字符串中的任何位置进行搜索,因此处理大型数据集也需要很长时间 - 您可能要尝试的另一个选项是在输入电话号码时检查注释字段,然后使用标记来标记该行像ContainsPhoneNumber (bit).这样的列,您可以索引该列并执行更快的查找.